线程安全
1、概念:多线程程序的运行结果可以保证100%的正确性,才能说是线程安全的,否则哪怕是99%的情况下,结果正确,也不是线程安全。
2、线程的根源——随机性的根源——来自于线程调度上的一些随机因素
(1、从CPU下来是随机的;2、谁被选中)
3、多线程程序,有很多情况下也是天生线程安全的。需要明确使用一些机制保障线程安全的情况,都具备以下特点:
1、多线程之间有共享资源
2、多线程之间有针对共享资源的修改操作。
栈的作用(表示运行方法的动态过程——主要保存的是栈帧) *(重要)
多线程—线程安全多线程—线程安全
多线程—线程安全
多线程—线程安全关于线程不安全,三个知识点
1、原子性问题
保证原子性最简单的方法是加锁
2、内存的可见性问题
3、代码的重排序
1、简单的讲,就是指令的最终执行顺序,可能不是你代码的书写顺序。
单线程情况下,不能因为这个重排序导致结果出现问题
2、为什么要重排序——为了提升执行效率——程序写的代码顺序往往不是最优解
3、谁会对代码进行重排序;
1、编译器就有可能进行重排 序
2、运行阶段,JVM也有可能进行重排序——JIT(just in Time)
3、运行阶段,CPU指令上也会进行一定的重排序。

4、重排序在多线程的情况下可能引发的问题
因为重排序,导致结果不正确了
多线程—线程安全
多线程—线程安全

相关文章:

  • 2018-01-07
  • 2021-11-22
  • 2018-12-20
  • 2018-10-10
  • 2021-11-01
  • 2018-10-07
  • 2018-03-12
  • 2021-09-11
猜你喜欢
  • 2019-01-04
  • 2019-10-23
  • 2021-01-21
  • 2018-03-11
  • 2021-12-10
  • 2021-12-10
  • 2020-06-11
  • 2018-03-21
相关资源
相似解决方案