最近学习了多线程。对于线程的互斥,同步的概念,以及java中的实现有了点理解。
[概念]
临界区、互斥区、事件、信号量四种方式基本上任何系统都用这四中方式来实现线程同步和互斥。
但是这些只是概念,具体到某些编程语言或者系统函数的时候
就会衍生出很多内容。比如windows API的实现,unix的系统函数实现等等[Java的实现]
互斥:synchronized 关键字
同步:wait(),join(),notify()以上是我个人的理解,如果有什么不对的地方,欢迎大家砖头。
[概念]
临界区、互斥区、事件、信号量四种方式基本上任何系统都用这四中方式来实现线程同步和互斥。
但是这些只是概念,具体到某些编程语言或者系统函数的时候
就会衍生出很多内容。比如windows API的实现,unix的系统函数实现等等[Java的实现]
互斥:synchronized 关键字
同步:wait(),join(),notify()以上是我个人的理解,如果有什么不对的地方,欢迎大家砖头。
解决方案 »
- java socket问题
- XML文本读取的问题
- 请大家为我提供一些JAVA WEB和J2EE的电子书籍,谢谢啦
- 更改tomcat默认主页问题 试了N次 但我还是失败了
- hibernate中更新,数据库未同步更新
- 问个笨问题:由hibernate查询到的List,可以直接让display-tag读取然后显示么? [结合struts]
- 请问jsp登陆的最好的方案有哪些呀?
- jb9安装后不能建立Web Application,是怎么回事?
- j2ee方案解决,请各位帮忙!!!!!!!!!!
- Struts2和Jasperreport5.6.0整合的过程中报错了
- 基本JSP问题
- java关于class文件加密问题!
)、倒计门闩(java.util.concurrent.CountDownLatch
)、循环障栅(java.util.concurrent.CyclicBarrier
)、交换器(java.util.concurrent.Exchanger)等等,以及用于同步的锁,比如:可重入锁、可重入读写锁等。使用 CPU 上的 CAS 指令,在底层实现了无阻塞的原子计数操作。
还有想问一下,所有的这些同步,互斥的原理都是针对同一个jvm中的多线程来说的,
如果是多个jvm,他们之间不可能用上面的理论进行互斥的。
这个理解对吗?
对于不同jvm之间的互斥操作没有很好的解决方案。
一些系统级别的api函数,这些函数实现进程级别的互斥,临界区访问等等。
c/c++很容易去使用他们,但是java如何使用呢这个不太清楚。
我看到java其实也有java.util.concurrent.locks.lock
这个是不是实现了进程级别的互斥呢。
windows提供的那些互斥的api都是线程级别的了。
如果我想进程间怎么控制呢?sockt,lock file?
http://blog.csdn.net/wgw335363240/archive/2010/08/08/5796955.aspxwait和notify的使用参考博客网址:
http://blog.csdn.net/wgw335363240/archive/2010/06/26/5695432.aspx这里面都有说明,建议楼主学习下,自己学完多写点例子,效果更好。