概念
程序 -> 一组静态的代码
进程 -> 正在进行的程序,静态代码运行起来线程 -> 正在执行的程序中的小单元
1、主线程 (系统线程)
2、用户线程 -> main
3、守护线程(精灵) -> GC
状态
创建
new Thread就绪
start()执行
CPU分配调用run()等待/挂起
wait()恢复到 -> 就绪状态
notify/notifyAll异常/死亡
exception/over
实现原理
实现线程的过程:
1、描述一个类
2、继承父类 Thread
3、重写 run()
4、new 线程对象,调用 start(),让线程进入就绪状态
1 | ① |
实现线程的第二种方法(避免单继承)
1、描述一个类
2、实现一个父接口 Runnable
3、重写 run()
4、new 线程对象,调用 start(),让线程进入就绪状态
1 | ① |
线程安全
synchronized 关键字,一旦被锁定,不释放的情况,其他对象都需要等待 -> “死锁”
1、放在方法的结构上
2、放在方法(构造方法、快)的内部
1 | // 锁定的是调用该方法时的对象 |
Thread 常用方法
sleep、setPriority、getPriority、join
1 | public class ThreadO extends Thread{ |
死锁:增加时间差
定时器 Timer
timer.schedule();

