Вы должны использовать JedisPool
в многопоточной среде. Но, по вашей реализации, вы на самом деле используете Jedis
в этой ситуации.
Чтобы решить, что вы можете взять JedisPool
вместо Jedis
для MyThread
конструктора.
public static void main(String[] args) throws Exception {
MyThread[] myThreads = new MyThread[4];
for (int i = 0; i < myThreads.length; i++) {
myThreads[i] = new MyThread(jedisPool);
myThreads[i].start();
}
jedisPool.close();
}
Во время каждой операции в классе MyThread
, возьмите объект Jedis
из пула и используйте его. Например:
class MyThread {
void doSomething() {
try (Jedis jedis = jedisPool.getResource()) {
jedis.exists(key);
}
}
}