java多线程
来源:互联网 发布:五五开德云色事件知乎 编辑:程序博客网 时间:2024/05/29 19:04
- 线程变化状态图:
sleep()、join()、yield()、start()、interrupt()对象主体是线程。 - 锁变化状态图:
wai()、notify()、notifyAll()对象主体可以是任何Object。
monitor
他们是应用于同步问题的人工线程调度工具。讲其本质,首先就要明确monitor的概念,Java中的每个对象都有一个监视器,来监测并发代码的重入。在非多线程编码时该监视器不发挥作用,反之如果在synchronized 范围内,监视器发挥作用。
wait/notify必须存在于synchronized块中。并且,这三个关键字针对的是同一个监视器(某对象的监视器)。这意味着wait之后,其他线程可以进入同步块执行。
当某代码并不持有监视器的使用权时(如图中5的状态,即脱离同步块)去wait或notify,会抛出java.lang.IllegalMonitorStateException。也包括在synchronized块中去调用另一个对象的wait/notify,因为不同对象的监视器不同,同样会抛出此异常。
volatile
请参考:
http://www.cnblogs.com/dolphin0520/p/3920373.html#undefined
https://www.ibm.com/developerworks/cn/java/j-jtp06197.htmlLock
请参考:
http://www.cnblogs.com/dolphin0520/p/3923167.htmlsynchronize
阅读全文
0 0
- 【Java多线程】多线程死锁
- Java 多线程
- java 多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA 多线程
- Java多线程
- java多线程
- JAVA 多线程
- Java 多线程
- Java 多线程
- java多线程
- Java 多线程
- Java多线程
- java 多线程
- Android
- MySQL记录插入与查找
- Android WEBVIEW中调用<a href>的问题!!!不是js的方法
- Intellij激活
- Python 3爬虫网易云(九)—— 获取一个歌手的热门50首歌词
- java多线程
- Python实现24点游戏
- h5+ 时光轴
- Maven使用deploy上传jar包到远程库
- Linux下svn库搭建
- 复选框的全选和反选
- 从事信息安全行业的心得
- 程序中的context(上下文)
- web——媒体查询