需要掌握:
概念:程序、进程、线程
多线程的创建和使用
线程的生命周期
线程的同步
线程的通信
概念:程序、进程、线程
程序-进程-线程
线程:是一个程序内部的一条执行路径(如果把进程比作河,那么线程就相当于河流的分支)
cpu的核数:几核的cpu代表一个瞬时时间能处理任务数
主频:任务之间的切换速度
核数越多、主频越快越好
多线程的创建和使用
多线程:一个进程(一个程序运行时),可以分化为并行执行多个线程(多个子程序)何时需要多线程?1、程序需要同时执行两个或者多个任务2、需要一些后台运行的程序多线程的创建和启动,通过java.lang.Threat实现Thread类特性:run():每个线程通过某个特定的Thread对象的run()方法(它的主体叫做线程体,想要运行的代码逻辑写在这个方法里)来完成操作
start():通过该Thread对象的start()方法(启动线程)来调用这个线程
创建线程:
方法一:继承Thread类实现多线程
CC.java
package jicheng; import java.lang.*; public class CC extends Thread { @Override public void run() { System.out.println("这里写的是多线程运行的代码"); for (int i = 1; i <= 8; i++) System.out.println(i); } }
B.java
package jicheng; import java.lang.*; public class B { public static void main(String[] args) { //new实例的时候用其父类去接受即可(对象的多态) Thread t0 = new CC(); t0.start();//启动线程,运行run方法 // start执行好之后的main()方法的其他的代码与run方法的代码并行 System.out.println("*****"); //发现每次运行的结果不一样 // 输出的和run方法输出混合,且顺序不一定,但是保持自己的输出顺序 //这个就是多线程的异步,同步:代码严格按照从上到下执行 //异步:开启线程之后run方法运行的和主程序的代码是并行执行的,没有先后关系 } }
方法二:实现Runnable接口实现多线程