1、volatile

2、JMM

3、代码示例

package com.yanshu;

class MyNmuber{
volatile int number=10;
public void addTo50(){ this.number=50; } } /**
* @author :yangyuanyuan
* @description:TODO
* @date :2021/1/28 15:36
* JMM=可见性(通知机制)
* 两个线程 mian线程和A线程,A线程修改numbe的值
*/
public class test5 {
public static void main(String[] args) {
MyNmuber myNmuber = new MyNmuber(); new Thread(()->{
System.out.println(Thread.currentThread().getName()+"\t come in ");
//暂停一会线程
try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); }
myNmuber.addTo50();//将10修改为50
System.out.println(Thread.currentThread().getName()+"\t update number,number value: "+myNmuber.number); }
,"A" ).start(); while (myNmuber.number==10){
//需要有一种通知机制告诉main线程,number已经修改成50,跳出while
} System.out.println(Thread.currentThread().getName()+"\t massion is over");
} }

number前不加volatile关键字时。main线程一种在while循环中等待

加上volatile关键字时

最新文章

  1. css3媒体查询实现网站响应式布局
  2. Android 6.0 权限请求
  3. JavaScript中数组迭代方法(jquery)
  4. JS 获取地址栏三级域名(改进版)
  5. 基于sentinel 的redis集群环境搭建
  6. NYOJ-756重建二叉树
  7. 在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案
  8. 深入理解Java:注解(Annotation)自定义注解入门
  9. java系列:《java核心技术 卷1》学习笔记,chapter 11 调试技巧
  10. nodejs学习--express篇
  11. Sina App Engine(SAE)入门教程(9)- SaeMail(邮件)使用
  12. try catch finally 关闭流标准的写法
  13. SQL Server DAC 管理员专用连接
  14. 解决word转pdf后图片失真
  15. POJ1080 Human Gene Functions 动态规划 LCS的变形
  16. cralwer_爬虫代理中心的简要设计
  17. Android获取手机唯一码
  18. Spark Standalone Mode
  19. word2vec并行实现小记
  20. javascript弹出模态窗体

热门文章

  1. 用python做youtube自动化下载器 思路
  2. MongoDB按照嵌套数组中的map的某个key无法正常排序的问题
  3. PHP 判断手机端还是web端
  4. Java 中的 equals() 和 hashCode()
  5. Java 在pom.xml中配置build resources, 来防止我们资源导出失败问题(Maven项目)
  6. kubernets之configMap和secret
  7. P1273 有线电视网(树形动规,分组背包)
  8. CTFHub - Web(一)
  9. JVM 判断对象已死,实践验证GC回收
  10. 绝对定位上下左右都为0 margin为auto为什么能居中