线程状态、切换、创建
线程状态
- New,新建
- Runnable,可运行状态
- Running,运行中
- Block,阻塞中。分为释放锁和不释放锁的阻塞
- Terminal,结束
线程切换
- Thread 静态方法
- sleep(), 当前线程停止,不释放锁。
- yield(), 当前线程让出CPU时间片进入可运行状态从新竞争获取CPU时间片
- Thread对象方法
- join(), 当前线程等待join()线程结束后再继续,不释放锁
- Object方法
- wait(), 等待并释放锁。
- notify(), notifyAll(),等待状态的线程重新进入Runable状态竞争CPU时间片。
- 这几个方法需要在加锁的代码中执行,否则会异常。
- Thread 静态方法
线程创建
- 继承Thread
- 实现Runnable
- 实现Callable
- 线程池
另附Java内存模型笔记