我有下面的JedisCluster进程,我想让线程安全-
public class Cluster {
private List<String> hostPorts;
private Map<String, JedisPool> hostPool =
new ConcurrentHashMap<String, JedisPool>();
public add(String node) {
hostPorts.add(node);
hostPool.add(node, create_pool);
}
public remove(String node) {
hostPorts.remove(node);
JedisPool pool = hostPool.remove(node)
pool.destroy();
}
public String getMaster(String key) {
return hostPorts.get(some_hash() % hostPool.size());
}
public JedisPool getPool(String node) {
return redisHostPool.get(node);
}
以下是线程-
我想知道使用并发处理上述场景的最佳策略。我希望避免在方法级别同步,因为读取非常频繁。
发布于 2017-06-15 22:08:21
使用ReadWriteLock
,这通常意味着ReentrantReadWriteLock
ReadWriteLock
维护一对关联锁,一个用于只读操作,另一个用于写入.读取锁可以由多个读取器线程同时持有,只要没有写入器。写锁是唯一的。
https://stackoverflow.com/questions/44577685
复制相似问题