当前位置: 首页 > news >正文

java 类共享变量,Java提供了ThreadLocal(java.lang)类,实现线程内共享变量

a63c8ace124ac403202175e3f473cb50.png

Java提供了ThreadLocal(java.lang)类,实现线程内共享变量

-------------------------------------------------------------

Import  java.util.Random;

public class TraditionalThreadSynchronized {

//    private static Map threadData = new HashMap();

private static ThreadLocal threadData = new  ThreadLocal();

public static   void main(String[] args) {

for(int i=0;i<2;i++){

new Thread(new Runnable(){

public void run() {

int data = new Random().nextInt();

System.out.println(Thread.currentThread().getName()

+ " has put data :" + data);

//                    threadData.put(Thread.currentThread(), data);

threadData.set(data);

new A().get();

new B().get();

}

}).start();

}

}

static class A{

public void get(){

//            int data = threadData.get(Thread.currentThread());

int data = threadData.get();

System.out.println("A from " + Thread.currentThread().getName()

+ " get data :" + data);

}

}

static class B{

public void get(){

//            int data = threadData.get(Thread.currentThread());

int data = threadData.get();

System.out.println("B from " + Thread.currentThread().getName()

+ " get data :" + data);

}

}

}

相关文章:

  • Java第三方语音包发声,JDK中的包和他们的基本功能
  • python mock数据,python学习开发mock接口
  • php syslog 514,syslog详解及配置远程发送日志和远程日志分类
  • 兰春 MySQL,MySQL中经典的too many connection怎么破
  • php后台处理传来的图片文件,如何处理展示后台程序实时生成的文件?
  • php遍历json键值对,JS实现键值对遍历json数组功能示例
  • php服务器cpu要求,如何分析服务器需要什么样的配置(CPU、内存、带宽等)
  • oracle查看表的字段个数据,oracle逆向查询某个字段内容所存在的数据表名称
  • oracle在procedure调用自己,oracle 在plsql中创建procedure并调用
  • oracle if 插入,Oracle有条件地插入数据
  • oracle修复sysaux表空间,修复受损的SYSAUX表空间
  • matlab runge现象,龙格现象matlab算法.doc
  • oracle支持分区移动,Oracle 12c 新特性 --- 移动分区支持数据过滤
  • linux如何打开控制端口tty2,linux – 如何检测属于gsm/3g-modem的tty是数据还是控制端口?...
  • linux服务器安装xfce,Ubuntu 16.10安装Xfce桌面与VNC远程连接
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript-Array类型
  • Java知识点总结(JavaIO-打印流)
  • Laravel 菜鸟晋级之路
  • nginx 配置多 域名 + 多 https
  • spring boot下thymeleaf全局静态变量配置
  • Spring声明式事务管理之一:五大属性分析
  • V4L2视频输入框架概述
  • Vue UI框架库开发介绍
  • vue-cli在webpack的配置文件探究
  • vue脚手架vue-cli
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 看域名解析域名安全对SEO的影响
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 漂亮刷新控件-iOS
  • 前端路由实现-history
  • 我感觉这是史上最牛的防sql注入方法类
  • gunicorn工作原理
  • #Linux(权限管理)
  • (八)Flask之app.route装饰器函数的参数
  • (第61天)多租户架构(CDB/PDB)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)fock函数详解
  • (转)母版页和相对路径
  • .CSS-hover 的解释
  • .net 反编译_.net反编译的相关问题
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET业务框架的构建
  • .Net语言中的StringBuilder:入门到精通
  • .NET中统一的存储过程调用方法(收藏)
  • @AliasFor 使用
  • @Data注解的作用
  • @GetMapping和@RequestMapping的区别