返回信息流使用线程安全的类的时候如何考虑race condition,什么时候需要加锁
这是一条镜像帖。来源:北邮人论坛 / java / #59651同步于 2018/7/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
使用线程安全的集合类是否还需要加锁
coyding
2018/7/19镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
比方说写一个工厂类,里面有三个线程安全的集合类,主要是起缓存作用,每{生产一个对象的时候同时产生另外两个对象,然后将这三个对象放入对应的集合类},这样如果下次所需的对象在缓存中有就可以直接拿,那么我考虑把大括号中间的部分synchronized (this)的方式加锁,这样做是否多余
看你是不是需要保证别的线程“要么看到三个对象都分别放进了三个集合,要么一个对象都没放进去”,而看不见“有两个放进去了,另一个没放进去”。如果有这样的要求,就需要一个大锁。
【 在 coyding 的大作中提到: 】
: 比方说写一个工厂类,里面有三个线程安全的集合类,主要是起缓存作用,每{生产一个对象的时候同时产生另外两个对象,然后将这三个对象放入对应的集合类},这样如果下次所需的对象在缓存中有就可以直接拿,那么我考虑把大括号中间的部分synchronized (this)的方式加锁,这样做是否多余