阅读背景:

【ThreadLocal】使用ThreadLocal实现线程安全

来源:互联网 

非线程安全

public class UnSafeThreadLocalDemo {
    private int count = 0;

    public static void main(String[] args) {
        UnSafeThreadLocalDemo unSafeThreadLocalDemo = new UnSafeThreadLocalDemo();
        for (int i = 0; i < 5; i++) {
            int finalI = i;
            new Thread(new Runnable() {
                @Override
                public void run() {
                    unSafeThreadLocalDemo.process();
                    unSafeThreadLocalDemo.print(finalI);
                }
            }).start();
        }

    }

    public void process() {
        for (int i = 0; i < 10; i++) {
            count += 1;
            try {
                TimeUnit.MILLISECONDS.sleep(new Random().nextInt(10) + 10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }

    public void print(int i) {
        System.out.println("count(" + i + ") = " + count);
    }
}public class UnSafeThreadLocalDemo {
  



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: