ThreadLocal引用測試

package com.gshx.zf.zhlz.controller;

import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;

public class ThreadId {
    // Atomic integer containing the next thread ID to be assigned
    private static final AtomicInteger nextId = new AtomicInteger(0);


    // Thread local variable containing each thread's ID
    private static final ThreadLocal<Integer> threadId = new ThreadLocal<Integer>() {
        @Override
        protected Integer initialValue() {
            return nextId.getAndIncrement();
        }
    };

    private static final Object object = threadId;


    // Returns the current thread's unique ID, assigning it if necessary
    public static int get() {
        return threadId.get();
    }

    public static void main(String[] args) {

        List<ThreadLocal<Integer>> list = new CopyOnWriteArrayList<>();
        List<Integer> integerList = new CopyOnWriteArrayList<>();

        new Thread(new Runnable() {
            @Override
            public void run() {
                threadId.get();
                list.add(threadId);
                integerList.add(threadId.get());
            }
        }).start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                threadId.get();
                list.add(threadId);
                integerList.add(threadId.get());
            }
        }).start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                threadId.get();
                list.add(threadId);
                integerList.add(threadId.get());
            }
        }).start();

        System.out.println(threadId);
        System.out.println(threadId);


        for(Integer integer : integerList){
            System.out.println(integer);
        }

        for(ThreadLocal<Integer> threadLocal1 : list){
            System.out.println(threadLocal1.get());
        }


    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章