阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_3_线程安全问题产生的原理

Posted wangjunwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_3_线程安全问题产生的原理相关的知识,希望对你有一定的参考价值。



解释一下线程安全问题产生的原理
三个线程t0 t1 t2 。加上t0抢到cpu的执行权
技术图片

t0抢到了cpu的执行权。,但是走到if语句的地方。执行了sleep,就失去了执行权
技术图片
假设t2抢到了执行权也来执行run方法
技术图片


技术图片

t2睡醒了
技术图片
技术图片

重复票的问题。三个线程同时执行到了 输出的这行代码
技术图片

总结


技术图片

 

以上是关于阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第3节 线程同步机制_3_线程安全问题产生的原理的主要内容,如果未能解决你的问题,请参考以下文章

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第1节 异常_3_异常的产生过程解析

阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_3_网络通信协议分类

阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_3_绝对路径和相对路径

阶段1 语言基础+高级_1-3-Java语言高级_07 缓冲流_4_缓冲流的效率测试_复制文件

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第4节 多态_15_多态的概述

阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_2_网络通信协议