都需要加锁.
资源竞争问题出现条件.
1.有2个或以上的写入线程
2.读写分离时对多个连续的写入与读取操作有原子性需求
那除了synchronized(对象)以外,有没有什么更加高效的,保证读写能并发的办法?
@Java水太深: 一般情况情况锁是不会有问题的.已经够高效了.
有效率问题的话那就是锁的使用方法问题.
@吴瑞祥:一个线程对Map进行不断的put操作,同时另外一个线程对同一个Map进行不断的get操作 (key相同)
这个情况下,我可以使用map的key作为锁吗?
@Java水太深: 可以的。
读写锁,readwritelock
可以看一下我的这篇博客:http://www.cnblogs.com/qilong853/p/5916206.html,
线程安全性:num++操作为什么也会出问题?,除了synchronized以外,还可以不共享变量,使用原子变量,threadlocal,减少锁的粒度等。你可以使用currentHashMap,actomInteger