分类: Java
2012-08-30 15:47:29
刚仔细看了下《Java核心技术 卷一 第8版》中的线程,总结一下线程同步。
1, 关键字Synchronize,(之前我以为就这一种呢)
2,java 5.0开始,引入了
ReentrantLock、ReentrantReadWriteLock.ReadLock、ReentrantReadWriteLock.WriteLock
以上这些Lock可以跟Condition对象联合使用
3,其实还有更简单且安全的方式,那就是利用java.util.concurrent包中的一种机制,比如BlockingQueue, ConcurrenHashMap等
在代码中应该使用哪一种?下面是书上的一些建议:
1,最好即不使用Lock/Condition,也不使用Synchronized关键字。先考虑使用java.util.concurrent包中的一种机制
2,其次考虑Synchronized关键字
3,如果特别需要Lock/Condition结构提供的独有特性时,才使用Lock/Condition