zoukankan      html  css  js  c++  java
  • ThreadLocal

    ThreadLocal概念:线程局部变量,是一种多线程并发访问变量的解决方案。与其synchronized等加锁方式不同,ThreadLocal完全不提供锁,而是用以空间换时间的手段,为每个线程提供变量独立的副本,以保证线程安全。从性能上来说,ThreadLocal不具有绝对优势,在并发不是很高的时候,加锁的性能会更好,但是作为一套与所完全无关的线程安全解决方案,在高并发量或者竞争激烈的场景,使用ThreadLocal可以在一定程度上减少竞争。

     1 package com.java.day02_threadlocal;
     2 
     3 public class ConnThreadLocal {
     4     private static ThreadLocal<String>th = new ThreadLocal<String>();
     5     
     6     public void setTh(String value){
     7         th.set(value);
     8     }
     9     
    10     public void getTh(){
    11         System.out.println(Thread.currentThread().getName()+":"+this.th.get());
    12     }
    13     
    14     public static void main(String[] args) {
    15         final ConnThreadLocal tl = new ConnThreadLocal();
    16         
    17         Thread t1 = new Thread(new Runnable() {
    18             public void run() {
    19                 tl.setTh("nanami");
    20                 tl.getTh();
    21             }
    22         },"t1");
    23         
    24         
    25         Thread t2  = new Thread(new Runnable() {
    26             public void run() {
    27                 try {
    28                     Thread.sleep(500);
    29                     tl.getTh();
    30                 } catch (InterruptedException e) {
    31                     e.printStackTrace();
    32                 }
    33             }
    34         },"t2");
    35         
    36         
    37         t1.start();
    38         t2.start();
    39         
    40     }
    41     
    42 }

    运行结果:

    1 t1:nanami
    2 t2:null
  • 相关阅读:
    第四周作业及总结
    第三周作业及其总结
    第二周作业及总结
    我所敬佩的老师
    秋季学习总结
    自我介绍
    寒三总结
    2019春第7周作业
    2019春第六周作业
    2019春第五周作业
  • 原文地址:https://www.cnblogs.com/syousetu/p/6729239.html
Copyright © 2011-2022 走看看