线程1
进程与线程
一个系统中运行了多个进程
一个进程里面包含了一个或多个线程
并发和并行
并发:一段时间内,多个线程使用一个CPU,多个线程交替运行
并行:同一时刻,两个或多个进程,各自使用一个CPU,同时进行运行。
main线程
运行一个类的时候,启动JVM,JVM会生成一个main线程去执行类中的程序入口。
线程创建启动
所有线程对象都必须是 Thread 类或其子类的实例
创建线程的三种方式:
1.继承Thread类,重写 run 方法
2.继承Runabl接口,重写run方法
3.通过Callable接口和Future接口,重写Callable接口的 call 方法,这个方法有返回值
匿名内部类
启动:调用线程的 start 方法,不能直接调用 run 方法,直接调用并没启动线程,而是主线程执行该引用的方法
String name = Thread.currentThread().getName();//得到当前线程的名字
线程分类
前台线程和后台线程
只要当前台线程全部执行完成的时候,JVM就会停止运行。不管后台线程有没有结束,JVM照样停止。
优先级
int 类型表示,默认为5,最大是10,最小是1
优先级的不同,只是改变了获取时间片的概率,并不会阻止其他线程的执行。
Thread.setPriority(int); 设置优先级
线程状态
线程的六种状态:出生 运行 锁阻塞 有限等待 无限等待 死亡
锁阻塞,有限等待,无限等待都是阻塞。