zoukankan      html  css  js  c++  java
  • ThreadLocal 例子

    /**
     * 一个ThreadLocal代表一个变量,故其中里只能放一个数据,有两个变量都要线程内共享,则要定义两个ThreadLocal。
     */
    public class ThreadLocalTest {
    
        private static ThreadLocal<Integer> threadData = new ThreadLocal<Integer>();
    
        public static void main(String[] args) {
            for (int i = 0; i < 2; i++) {
                new Thread(new Runnable() {
                    public void run() {
                        int data = new Random().nextInt();
                        System.out.println(Thread.currentThread().getName() + " has put data :" + data);
                        threadData.set(data);
                        new A().get();
                        new B().get();
                    }
                }).start();
            }
        }
    
        static class A {
            public void get() {
                int data = threadData.get();
                System.out.println("A from " + Thread.currentThread().getName() + " get data: " + data);
            }
        }
    
        static class B {
            public void get() {
                int data = threadData.get();
                System.out.println("B from " + Thread.currentThread().getName() + " get data: " + data);
            }
        }
    }

    输出结果:

    Thread-1 has put data :-1978178521
    Thread-0 has put data :-227790491
    A from Thread-0 get data: -227790491
    A from Thread-1 get data: -1978178521
    B from Thread-0 get data: -227790491
    B from Thread-1 get data: -1978178521
  • 相关阅读:
    appium+python界面滑动
    selenium+python元素定位总结
    PAT甲级1017. Queueing at Bank
    PAT甲级1016. Phone Bills
    PAT甲级1014. Waiting in Line
    PAT甲级1013. Battle Over Cities
    PAT甲级1012. The Best Rank
    PAT甲级1010. Radix
    PAT甲级1003. Emergency
    hihocoder1320 160周 压缩字符串
  • 原文地址:https://www.cnblogs.com/faunjoe88/p/7903728.html
Copyright © 2011-2022 走看看