ThreadLocal
    1.线程局部变量,是一种多线程并发访问变量的解决方案,与同步技术 synchronize 加锁的方式不同,threadlocal完全不提供锁,而使用
       空间换时间的手段,为每个线程提供变量的独立副本,一保证现成的安全。
    2.在并发不是很高的时候,加锁的性能会更好,但是作为一套完全无关的线程安全解决方案,减少锁的竞争。
  1. package demo3;
  2. import java.util.concurrent.TimeUnit;
  3. /**
  4. * Created by liudan on 2017/7/7.
  5. */
  6. public class MyThread1 {
  7. public static ThreadLocal<String> threadLocalString = new ThreadLocal<String>();
  8. public void setThreadLocalString(String string) {
  9. threadLocalString.set(string);
  10. }
  11. public void getThreadLocalString() {
  12. System.err.println("◆:" + Thread.currentThread().getName() + ":" + threadLocalString.get());
  13. }
  14. public static void main(String[] args) {
  15. final MyThread1 myThread1 = new MyThread1();
  16. Thread t1 = new Thread(new Runnable() {
  17. @Override
  18. public void run() {
  19. myThread1.setThreadLocalString("张帅");
  20. myThread1.getThreadLocalString();
  21. }
  22. },"T0000-01");
  23. Thread t2 = new Thread(new Runnable() {
  24. @Override
  25. public void run() {
  26. try {
  27. TimeUnit.SECONDS.sleep(0);
  28. myThread1.setThreadLocalString("张帅1111");
  29. myThread1.getThreadLocalString();
  30. } catch (InterruptedException e) {
  31. e.printStackTrace();
  32. }
  33. }
  34. },"T0000-02");
  35. t1.start();
  36. t2.start();
  37. }
  38. }
  39. 输出:
  40. ◆:T0000-01:张帅
    ◆:T0000-02:张帅1111

最新文章

  1. [Amazon] Amazon IAP for Unity
  2. POJ2135 Farm Tour(最小费用最大流)
  3. CentOS6.5菜鸟之旅:安装VirtualBox4.3
  4. winfrom 水晶按钮
  5. 浅谈window.attachEvent
  6. [LeetCode]题解(python):132-Palindrome Partitioning II
  7. jbpm部署流程定义到MySql报乱码解决方案
  8. [PCB设计] 3、用CAM350修改GERBER文件(删除某些部分)
  9. 国民身份证号码校验之“C#/Winform方法实现+案例分析”
  10. CI Weekly #16 | 从另一个角度看开发效率:flow.ci 数据统计功能上线
  11. &lt;object&gt;元素+svg 绘制图片
  12. 集成JPA+springmvc+spring+EJB中的Java EE应用
  13. 内存数据网格hazelcast的一些机制原理
  14. Python基础之面向对象2(封装)
  15. 获取天气预报API5_统计最容易生病时间段
  16. eclipse添加缺失的包/src/main/resource
  17. ElasticSearch读写原理
  18. Image processing in Python
  19. 关于添加图片到svg中,rails下使用js, 用parseFloat来调整force.on时的位置
  20. git远程从入门到放弃

热门文章

  1. AC日记——Cards Sorting codeforces 830B
  2. python和shell间变量互相传递
  3. 《构建高性能 Web站点》笔记
  4. PyQt5点击按钮产生新窗体
  5. Codeforces Round #292 (Div. 1) C - Drazil and Park
  6. HttpServletRequest继承字ServletRequest的常用方法
  7. laravel windows安装(composer)
  8. OOD沉思录 --- 面向动作与面向对象 --- 避免泛滥成灾的类
  9. HDU5883 The Best Path(欧拉回路 | 通路下求XOR的最大值)
  10. CodeForces 803F Coprime Subsequences