码迷,mamicode.com
首页 > 编程语言 > 详细

redis线程安全讨论

时间:2017-11-22 21:52:32      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:test   client   线程   main   auth   循环   system   sim   tar   

package com.me.config;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
* Project: me
* Package: com.me.config
* Date: 2017/11/22 19:30
* Author: Simeon
*/

class Demo extends Thread
{
public void run()
{
Jedis jedis1 = new Jedis();
for (int i=0;i<100;i++){
int num = Integer.parseInt(jedis1.get("num"));
num = num + 1;
jedis1.set("num",num+"");
System.out.println(jedis1.get("num"));
}
}

}

public class test{

public static void main(String... args){
Jedis jedis = new Jedis();
jedis.set("num","1");
new Demo().start();
new Demo().start();
}

}
先存储一个num,数值为1。跑2个线程,每个都是100次循环+1。
讲道理如果线程安全,两个线程跑的时候应该是互斥的,即一个线程在跑的时候另一个处于阻塞状态,所以输出结果应该是200.
但是结果输出都不是200。所以redis不是线程安全。


redis线程安全讨论

标签:test   client   线程   main   auth   循环   system   sim   tar   

原文地址:http://www.cnblogs.com/Simeonwu/p/7881100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!