Daily Archives: March 26, 2008

并发相关

http://www.javaeye.com/post/498557 copy on write array list ConcurrentHashMap ReentrantLock ReentrantReadWriteLock CAS 我都有在用,JDK内置 一直都想写一些关于它们的文章,不过始终太松散,而且我是知道原理然后直接用API而已 我随便说一些 楼主的copy on write模式是可取的,JDK很早就引入copy on write array list来处理Listener部分,在写入非常非常少的情况下,copy on write其实是很好的。至于楼主的实现好不好就不知道了 ConcurrentHashMap用了多个锁来处理,里面有一个一个的bucket来隔离锁,默认就是16个bucket&锁。但是它也有缺点,就是不能保证数据绝对准确,例如他的size就是不准确的。但是它肯定是线程安全的 ReentrantLock是可以代替synchronized的东西,除了写起来比synchronized难稍稍。默认是non-fair模式,比synchronized快很多,如果改成fair就会下降到跟synchronized差不多 ReadWriteLock很简单,read不互斥,write互斥 CAS就是AtomicInteger之类的了,使用了CPU的交换指令,理论上比锁快,但是在高并发的环境一样会下降 你们还是看一下JDK源代码和JavaDoc好过了,你们的讨论本来就有答案的

Posted in Uncategorized | 1 Comment