0
点赞
收藏
分享

微信扫一扫

ThreadLocal简单实现

蓝哆啦呀 2022-01-20 阅读 89

多线程控制类:

ThreadLocal:

方法:

创建一个可以实现转账的类:

public class OneThreadLocal {
    ThreadLocal<Integer> threadLocal=new ThreadLocal<Integer>(){
        @Override
        protected Integer initialValue() {
            return 0;
        }
    };
    public Integer get(){
        return threadLocal.get();
    }
    public void set(int money){
        threadLocal.set(threadLocal.get()+money);
    }
}

创建Runnable的实现类:

public class RunnableImpl implements Runnable{
    private OneThreadLocal oneThreadLocal=new OneThreadLocal();
    private int money;
    public RunnableImpl(int money){
        this.money=money;
    }
    @Override
    public void run() {
            oneThreadLocal.set(money);
        System.out.println("线程"+Thread.currentThread().getName()+"....."+oneThreadLocal.get());
    }
}

测试类:

import one.RunnableImpl;

public class OneThreadLocalTest {
    public static void main(String[] args) {
        for (int i=0;i<10;i++){
            RunnableImpl runnable=new RunnableImpl(10);
            Thread thread=new Thread(runnable);
            thread.start();
        }
    }
}

结果:

线程Thread-0.....10
线程Thread-2.....10
线程Thread-1.....10
线程Thread-3.....10
线程Thread-5.....10
线程Thread-6.....10
线程Thread-7.....10
线程Thread-8.....10
线程Thread-9.....10
线程Thread-4.....10

Process finished with exit code 0

举报

相关推荐

0 条评论