ThinkInJava杂记--并发控制-02-线程控制

来源:互联网 发布:茂名荔枝网络品牌 编辑:程序博客网 时间:2024/06/05 17:54

线程状态

1、新建new:已建立还没有start

2、就绪runnable:运行中或等待时间片中

3、死亡dead:从run方法中返回,线程运行结束

4、阻塞blocked:线程能够运行,但某个条件阻止了它的运行,直到线程返回就绪状态后,线程继续运行(如:sleep,join,io阻断等原因)


进入阻塞状态

1、sleep,直到超过sleep时间

2、wait,直到得到notify()活notifyAll()后继续。

wait只能用在同步块内,并且将会释放同步锁

notify方法只能拥有对象的锁时才能调用,如:synchronized(x){x.notify();}

3、等待I/O完成

4、等待同步锁

5、join,等到被join的线程结束


Thread.interrupted(); 可以强制所有在阻塞状态的线程抛出 InterruptedException,来提醒线程结束



原创粉丝点击