java的多线程可以和JedisPool一起使用吗?
时间: 2023-06-26 11:08:11 浏览: 75
可以的。JedisPool本身是线程安全的,可以在多线程环境中共享使用。在多线程环境中,每个线程使用JedisPool时,应该先从JedisPool中获取Jedis实例,并在使用完成后将Jedis实例归还给JedisPool,以避免资源浪费和线程安全问题。以下是一个简单的示例代码:
```
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisPoolExample {
private static final String REDIS_HOST = "localhost";
private static final int REDIS_PORT = 6379;
private static final JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), REDIS_HOST, REDIS_PORT);
public static void main(String[] args) {
// 创建多个线程来共享使用JedisPool
for (int i = 0; i < 10; i++) {
new Thread(() -> {
// 从JedisPool中获取Jedis实例
try (Jedis jedis = jedisPool.getResource()) {
jedis.set("key", "value");
String result = jedis.get("key");
System.out.println(result);
}
}).start();
}
}
}
```