标签:总结 访问 logs 其它 其他 不执行 for .net 规则
线程安全性定义:
当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。
Java内存模型是围绕着在并发过程中如何处理原子性、可见性和有序性这3个特征来建立的。
原子性:是指一个操作或多个操作要么全部执行,且执行的过程不会被任何因素打断,要么就都不执行。
原子性提供了互斥访问,同一时刻只能有一个线程来对它进行操作
可见性:当一个线程修改了线程共享变量的值,其它线程能够立即得知这个修改。
一个线程对主内存的修改可以及时的被其他线程观察到。Java内存模型是通过在变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值这种依赖主内存作为传递媒介的方法来实现可见性的,无论是普通变量还是volatile变量都是如此。
有序性:即程序执行的顺序按照代码的先后顺序执行。
Java内存模型中的程序天然有序性可以总结为一句话:如果在本线程内观察,所有操作都是有序的;如果在一个线程中观察另一个线程,所有操作都是无序的。前半句是指“线程内表现为串行语义”,后半句是指“指令重排序”现象和“工作内存主主内存同步延迟”现象。
有序性的语意有几层,
参考资料:
标签:总结 访问 logs 其它 其他 不执行 for .net 规则
原文地址:https://www.cnblogs.com/z00377750/p/9201281.html