多线程锁的问题
问题:请问使用ReentrantReadWriteLock可以解决吗?
|
|
|
|
为了不影响当前对List操作性能,上面batchInsert可以放到另外一台机器运行,如果是双核4G,可以搞两个JVM,让另外一个JVM运行,分担负载。
[该贴被banq于2009-12-12 11:39修改过]
|
你这个数据表共享资源和List共享资源是两个不同性质,读写锁只能锁定一个共享资源,就是List这个共享资源,凡是和List共享资源无关的都没用。
象你现在放在里面,只会拖延List的写锁时间,导致读比较忙。
数据表共享资源由数据库锁或事务来实现。
如果能这样,最好了,但是公司不会采用这么复杂的部署及设计,他们要考虑业务变化性及公司成本,还有将来的维护,部署复杂意味着将来维护难呀
这里锁住没有效果,在你再次入库时还需要检查一下,或者设定唯一键,从数据库方面想办法。