zoukankan      html  css  js  c++  java
  • 14.ThreadLocal

    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



  • 相关阅读:
    OpenCV 3-1.1-头文件
    安装ROS报错:The following packages have unmet dependenctes:
    机器人学——3.3-逆运动学
    机器人学——3.2-正运动学
    机器人学——3.1-机械臂DH参数
    机器人学——2.4-坐标系的旋转和运动增量
    机器人学——2.3-姿态插值和笛卡尔运动
    面向对象
    数组
    变量总结
  • 原文地址:https://www.cnblogs.com/xxt19970908/p/7302393.html
Copyright © 2011-2022 走看看