Java基础教程——线程局部变量
线程局部变量
ThreadLocal,线程局部变量,不提供锁,不做线程共享,而是为每个线程提供变量的独立副本。
import java.util.concurrent.*;
public class TestThreadLocal {public static void main(String[] args) throws InterruptedException {ExecutorService es = Executors.newCachedThreadPool();es.submit(new MyThread(1));es.submit(new MyThread(2));es.shutdown();System.out.println("END");}
}
class MyThread implements Runnable {public static Long VAR = 0L;public static ThreadLocal<Long> VAR_LOCAL = new ThreadLocal<Long>();private long num;public MyThread(long num) {this.num = num;}@Overridepublic void run() {for (int i = 0; i < 700; i++) {// 将参数放入静态变量中存储VAR = num;// 普通静态变量VAR_LOCAL.set(num);// 线程局部变量if (VAR_LOCAL.get() != num) {// 线程局部变量:每个线程有变量的独立副本,保障线程安全。这句话不会输出。System.out.println("VAR_LOCAL:" + VAR_LOCAL.get());}if (VAR != num) {// 普通静态变量:线程不安全,这句话会输出System.out.println("VAR:" + VAR);}}}
}
转载于:https://www.cnblogs.com/tigerlion/p/11180477.html
Java基础教程——线程局部变量相关推荐
- Java基础教程-10-多线程
Java基础教程-10-多线程 1. 多线程 我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计? 要解决上述问题,咱们得使用多进程或 ...
- (CZ深入浅出Java基础)线程笔记
这是刘意老师的JAVA基础教程的笔记 讲的贼好,附上传送门 传智风清扬-超全面的Java基础 一.线程的引入 1.多线程概述 进程 a.正在运行的程序,是系统进行资源分类和调用的独立单位. b.每个进 ...
- Java基础教程:多线程基础(3)——阻塞队列
Java基础教程:多线程基础(3)--阻塞队列 快速开始 引入问题 生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据. 模 ...
- Java基础教程:Lambda表达式
Java基础教程:Lambda表达式 引入Lambda Java 是一流的面向对象语言,除了部分简单数据类型,Java 中的一切都是对象,即使数组也是一种对象,每个类创建的实例也是对象.在 Java ...
- Java基础教程:注解
Java基础教程:注解 本篇文章参考的相关资料链接: 维基百科:https://zh.wikipedia.org/wiki/Java%E6%B3%A8%E8%A7%A3 注解基础与高级应用:http: ...
- Java基础教程-刘刚-专题视频课程
Java基础教程-2704人已学习 课程介绍 Java基础教程是一套入门Java开发语言的课程,它是由浅入深的介绍Java基础内容,包括Java介绍.基本类型及运算符.控制执行流程.字 ...
- java基础教程(一)
Java 开发环境配置 在进行Java开发之前,需要先安装Java开发工具包(JDK)和集成开发环境(IDE).以下是Java开发环境的配置和搭建步骤: 下载JDK:访问Oracle官方网站,选择适合 ...
- Java基础教程-05-面向对象
Java基础教程-05-面向对象 1. 面向过程和面向对象解释 1.1 面向过程 1.1.1 简述 我们回想一下, 前面我们完成一个需求的步骤是怎样的? 首先是搞清楚我们要做什么. 然后在分析怎么做. ...
- Java基础教程:反射基础
Java基础教程:反射基础 引入反射 反射是什么 能够动态分析类能力的程序称为反射. 反射是一种很强大且复杂的机制. Class类 在程序运行期间,Java运行时系统始终为所有对象维护一个被称为运行时 ...
- Java基础教程:面向对象编程[2]
Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...
最新文章
- oracle12测试骤,Oracle中SQL语句解析的步骤
- MySQL5.6.35数据库多实例二进制安装
- SP4062电路接口芯片保护IC
- java mapreduce 实例_MapReduce -- JAVA 实例(一)计算总数
- metasploitable2渗透测试
- centos安装redis并客户端连接_Linux(Centos)之安装Redis及注意事项
- Linux系统下强制踢掉登录用户
- 错误处理和调试2 - C++快速入门31
- 每周全球科技十大新闻(2019.8.12-8.18)
- t检验临界值表中的n是什么_t检验(t-test)临界值表
- 线上问题处理1---CPU飙高问题定位
- 什么是世界协调时间UTC
- 如何重置Mac的蓝牙模块以解决连接问题
- 混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。
- 3名院士被处理,院士改革确实动真格了!
- 在MySQL中 NULL的含义是_mysql null的含义是什么
- coco数据集(yoloV5格式)中生成子类数据集
- 锤粉往事:有人早已失望离开,有人还不想说再见
- 【QT】C++ GUI Qt4 学习笔记3
- 微信小程序自定义表格样式
热门文章
- 【Hoxton.SR1版本】Spring Cloud Stream消息驱动
- POI操作Excel表格相关API说明
- Java集合Collection之实现原理解读(HashSet)
- Spring Cloud Zuul路由网关(学习总结)
- 辞职的新方式:一言不合就消失!
- Coding and Paper Letter(四十八)
- 澜起科技加速中国本土数据中心解决方案进程
- 创建额外域控制器Active Directory(二)
- 一个类windows系统的效果图
- redux-chunk中间件的安装和使用-(二)