zoukankan      html  css  js  c++  java
  • 9.并发编程--ThreadLocal

    并发编程--ThreadLocal

    1. ThreadLocal :

    • * 线程局部变量,是一种多个线程间并发访问变量的解决方案。
    • * 与其使用synchronized等加锁的方式,ThreadLocal完成不提供锁,而是用空间换时间的手段,为每个线程提供变量的独立副本,以保证线程安全;
    • * 从性能上来说:ThreadLocal不具有绝对的优势,在并发并不是很高的情况下,加锁的性能会更好;但作为一套完全与锁无关的线程安全的解决方案,

    在高并发量或者竞争激励的场景,使用ThreadLocal可以在一定程度上减少锁竞争。
    示例:ConnThreadLocal.java

     1     public class ConnThreadLocal {
     2 
     3         public static ThreadLocal<String> th = new ThreadLocal<String>();
     4 
     5         public void setTh(String value){
     6           th.set(value);
     7         }
     8         public void getTh(){
     9           System.out.println(Thread.currentThread().getName() + ":" + this.th.get());
    10         }
    11 
    12         public static void main(String[] args) throws InterruptedException {
    13 
    14           final ConnThreadLocal ct = new ConnThreadLocal();
    15           Thread t1 = new Thread(new Runnable() {
    16             @Override
    17             public void run() {
    18               ct.setTh("张三");
    19               ct.getTh();
    20             }
    21           }, "t1");
    22 
    23           Thread t2 = new Thread(new Runnable() {
    24             @Override
    25             public void run() {
    26               try {
    27                 Thread.sleep(1000);
    28                 ct.getTh();
    29               } catch (InterruptedException e) {
    30                 e.printStackTrace();
    31               }
    32             }
    33           }, "t2");
    34 
    35           t1.start();
    36           t2.start();
    37         }
    38 
    39     }
  • 相关阅读:
    正则化--L1正则化(稀疏性正则化)
    机器学习分类算法之随机森林
    机器学习分类算法之逻辑回归
    机器学习分类算法之朴素贝叶斯
    机器学习分类算法之K近邻(K-Nearest Neighbor)
    机器学习之特征工程
    uwsgi支持http长链接
    机器学习之数据预处理
    机器学习之场景解析
    机器学习之基本概念
  • 原文地址:https://www.cnblogs.com/Mao-admin/p/9988943.html
Copyright © 2011-2022 走看看