原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11812459.html
package thread;

/**
* volatile关键字和ThreadLocal变量的使用
*/
public class VolatileAndThreadLocal { /**
* 基于内存屏障实现的内存可见性关键字修饰的变量
*/
private static volatile String PRIVER_KEY = "HELLO WORLD"; static class MyThread extends Thread{ /**
* 线程所拥有的私有专属司机
*/
private static ThreadLocal<Integer> threadLocal = new ThreadLocal<>(); @Override
public void run() {
super.run();
for (int i = 0; i < 3; i++){
threadLocal.set(i);
System.out.println(getName() + " threadLocal.get() = " + threadLocal.get());
PRIVER_KEY = "THIS IS MY PRIVER_KEY " + Thread.currentThread().getName() + " INDEX " + i;
System.out.println(PRIVER_KEY);
}
}
} public static void main(String[] args){ MyThread myThreadA = new MyThread();
myThreadA.setName("ThreadA"); MyThread myThreadB = new MyThread();
myThreadB.setName("ThreadB"); myThreadA.start();
myThreadB.start();
System.out.println(PRIVER_KEY);
}
}

运行结果:

Volatile关键字和ThreadLocal变量的简单使用的更多相关文章

  1. volatile 关键字(修饰变量)

    目录 volatile 关键字(修饰变量) 1. 含义 2. 作用 3. 如何保证可见性 4. 如何禁止指令重排序优化 5. volatile 是不安全的 6. volatile 不适用场景 vola ...

  2. 多线程-volatile关键字和ThreadLocal

    1.并发编程中的三个概念 原子性:一个或多个操作.要么全部执行完成并且执行过程不会被打断,要么不执行.最常见的例子:i++/i--操作.不是原子性操作,如果不做好同步性就容易造成线程安全问题. 可见性 ...

  3. Java并发编程:volatile关键字解析

    Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在 ...

  4. 【转】Java并发编程:volatile关键字解析

    转自:http://www.importnew.com/18126.html#comment-487304 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备 ...

  5. 内存管理_深入剖析volatile关键字

    四.深入剖析volatile关键字 在前面讲述了很多东西,其实都是为讲述volatile关键字作铺垫,那么接下来我们就进入主题. 1.volatile关键字的两层语义 一旦一个共享变量(类的成员变量. ...

  6. (转)Java并发编程:volatile关键字解析

    转:http://www.cnblogs.com/dolphin0520/p/3920373.html Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或 ...

  7. volatile关键字解析

    转载:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受 ...

  8. 《转》JAVA并发编程:volatile关键字解析

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...

  9. volatile关键字解析(转)

    volatile关键字解析 转载:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过.在J ...

随机推荐

  1. Android物联网应用程序开发(智慧城市)—— 火焰监控界面开发

    效果: 布局代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: ...

  2. 【MySQL作业】DDL 和 DML——美和易思使用 DDL 维护数据库表结构应用习题

    点击打开所使用到的数据库>>> 1.使用 DDL 语句修改 easyShopping 商品表 goods 表结构,要求如下: 新增字段生产厂商 manufacturer,它的类型为 ...

  3. jboss CVE-2015-7501 反序列化漏洞复现

    JBOSS反序列化漏洞 环境: vulfocus jboss CVE-2015-7501 云服务器 kali攻击机 基本原理:JBoss在/invoker/JMXInvokerServlet请求中读取 ...

  4. httprunner2.0 概述及使用说明

    一.概述 HttpRunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求. 二.系统流程 ...

  5. Linux shc 命令手册

    shc Generic shell script compiler. https://www.linux-man.cn/command/shc/ #Compile a shell script: sh ...

  6. Docker 容器化的 SonarQube 服务在不同主机之间的迁移

    安装 docker-ce // https://docs.docker.com/install/linux/docker-ce/centos/ $ sudo yum remove docker \ d ...

  7. Git Book PDF下载

    Download Git-Book

  8. CentOS6.5-Hadoop2.7.3安装hive-2.1.1

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6627723801960382979/ 系统版本,Hadoop已安装完成 Mysql安装完成 准备的解压包 安装zi ...

  9. [STM32F10x] 利用定时器测量频率

    硬件:STM32F103C8T6 平台:ARM-MDk V5.11 原理 利用STM32F10x的定时器的捕获(Capture)单元测量输入信号的频率. 基本原理是通过两次捕获达到的计数器的差值,来计 ...

  10. elasticsearch之请求处理流程(Rest/RPC )

    .Action概述 ES提供client供集群节点或java客户端访问集群用.client模块通过代理模式,将所有的操作都集成到client接口中.这样外部调用只需要初始化client就能够完成所有的 ...