Exception in thread "pool-1-thread-3" Exception in thread "pool-1-thread-2" java.lang.ClassCastException: [B cannot be cast to java.lang.Long
at redis.clients.jedis.Connection.getIntegerReply(Connection.java:222)
at redis.clients.jedis.Jedis.setnx(Jedis.java:370)
at com.github.jedis.lock.JedisLock.acquire(JedisLock.java:142)
at test.redis.MyMain.getValueByjedis(MyMain.java:41)
at test.redis.MyMain$1.run(MyMain.java:22)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
java.lang.ClassCastException: java.lang.Long cannot be cast to [B
at redis.clients.jedis.Connection.getBinaryBulkReply(Connection.java:216)
at redis.clients.jedis.Connection.getBulkReply(Connection.java:205)
at redis.clients.jedis.Jedis.get(Jedis.java:101)
at com.github.jedis.lock.JedisLock.acquire(JedisLock.java:148)
at test.redis.MyMain.getValueByjedis(MyMain.java:41)
at test.redis.MyMain$1.run(MyMain.java:22)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
想用redis来做个分布式锁, 目前在实验中,就用多线程来模仿多台机器。
当两个线程跑的时候没有问题,再加一个线程 就抛异常了。
当t1成功获取锁的时候,t2 和t3都继续尝试去获取锁,就在这个时候抛出个类型转换异常。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。