ThreadLocal的使用理解
来源:互联网 发布:淘宝收藏加购物车软件 编辑:程序博客网 时间:2024/06/05 14:15
总结:ThreadLocal保证了变量在被多线程同时操作的时候,互不干涉。
public class TestNum { // ①通过匿名内部类覆盖ThreadLocal的initialValue()方法,指定初始值 private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer>() { public Integer initialValue() { return 0; } }; // ②获取下一个序列值 public int getNextNum() { seqNum.set(seqNum.get() + 1); return seqNum.get(); } public static void main(String[] args) { TestNum sn = new TestNum(); // ③ 3个线程共享sn,各自产生序列号 TestClient t1 = new TestClient(sn); TestClient t2 = new TestClient(sn); TestClient t3 = new TestClient(sn); t1.start(); t2.start(); t3.start(); } private static class TestClient extends Thread { private TestNum sn; public TestClient(TestNum sn) { this.sn = sn; } public void run() { for (int i = 0; i < 3; i++) { // ④每个线程打出3个序列值 System.out.println("thread[" + Thread.currentThread().getName() + "] --> sn[" + sn.getNextNum() + "]"); } } }}
thread[Thread-0] --> sn[1]
thread[Thread-2] --> sn[1]
thread[Thread-1] --> sn[1]
thread[Thread-2] --> sn[2]
thread[Thread-0] --> sn[2]
thread[Thread-2] --> sn[3]
thread[Thread-1] --> sn[2]
thread[Thread-1] --> sn[3]
thread[Thread-0] --> sn[3]
阅读全文
0 0
- ThreadLocal的使用理解
- ThreadLocal的理解和使用
- ThreadLocal的理解与使用
- ThreadLocal类的理解与使用
- ThreadLocal理解与使用
- 对ThreadLocal的理解
- ThreadLocal的理解
- ThreadLocal的理解
- 关于ThreadLocal的理解
- 对ThreadLocal的理解
- ThreadLocal的理解(转载)
- ThreadLocal类的理解
- ThreadLocal的理解
- ThreadLocal 的理解
- ThreadLocal的理解
- ThreadLocal的个人理解
- 关于ThreadLocal的理解
- threadLocal的理解
- Vision_字符串_字符串哈希(BKDR Hash)
- 实际编写中的注解问题,@Autowired位置写错,报错java.lang.NullPointerException
- 6.我是输入法
- fffffffffdsfsdfsdfs
- 关于The "GenerateResource" task failed unexpectedly.的报错
- ThreadLocal的使用理解
- RequireJS学习笔记
- Lambda 表达式
- 前端最佳实践——DOM操作
- React-Native 热更新 CodePush
- Library使用ButterKnife
- python scrapy库安装过程提示错误 Running setup.py install for Twisted ... error
- ztree checkbox父子联动
- PHP问题:Deprecated: Function split() is deprecated in解决方法