multi-thread

同步:次序;互斥:临界资源一次只能为一个进程所用。

monitor 监测并发代码的重入

wait/notify必须存在于synchronized块中--针对的是一个监视器。wait之后其他线程可进入同步块执行,如缓冲区为空时读进程阻塞、写进程将数据送入缓冲区时读进程被唤醒。

java.lang.IllegalMonitorStateException

monitor : A mechanism to control access to objects one at a time

 

synchronized 单独使用与直接用于方法

synchronized, wait, notify结合

volatile每次针对该变量的操作都激发一次load and save。

生产消费者:product是拥有的,当大于一定值则停止生产,小于一定值则停止消费。

切换 yield 阻塞 wait 打断 interrupt 暂停 sleep 等待 join

结束阻塞 notify 终止 stop

interrupt 线程会不时地检测中断标识位,以判断线程是否应该被中断(中断标识值是否为true)。只影响到wait状态、sleep状态和join状态。被打断的线程会抛出InterruptedException。

Thread.interrupted()检查当前线程是否发生中断,返回boolean
synchronized在获锁的过程中是不能被中断的。

wait等阻塞方法会去检查(interrupt()方法是否将这个状态置为true)并抛出异常。如果在正常运行的程序中添加while(!Thread.interrupted()) ,则同样可以在中断后离开代码体

不能用try,catch来获取线程中的异常

 

posted on 2017-12-06 04:56  satyrs  阅读(242)  评论(0编辑  收藏  举报

导航