标签:操作 tps blank 自己的 并发编程 ima strong 读取 程序
图灵学院 java架构师学习路线
前段时间有个并发编程的问题曾一度困扰着我,后来就通过上网找资料发现并发编程原来是这样,Java并发编程常说的,在实际开发中需要经常注意的两个概念:可见性、有序性,下面我将为大家一一道来并发编程的两个概念。
1、可见性
可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。
当多个线程操作一个普通的共享变量时,其中某个线程操作的原理是这样的,首先从主内存中读取这个变量到自己的工作内存,在工作内存中修改以后保留变量的副本,在写入到主内存。但是普通变量不存在可见性,当修改新值以后,什么时候写入主内存是不一定的,当其他线程读取的时候,读取的可能还是旧值。
2、有序性
有序性,即程序的执行顺序按照代码的先后顺序来执行;在java内存模型中,编译器和处理器允许对指令进行重排序,在单线程下不会出问题,但是多线程下会有问题,实现有序性的方法有synchronized或者Lock 、volatile(禁止指令重排序)。
并发编程的概念讲解到此就告一段落了,但是学习之路却不应该被终止,一个人对事情的兴趣浓烈度,决定了他会在这件事情会多少功夫,如果遇到那些半途而废的人,不是说明他们对那件事情根本没有一点的兴趣,而是他没有足够的兴趣去做那件事情。
尽管Java架构师学习路线已经分享给大家,但有多少人能认真的去践行,这个就难说了。互联网寒冬已经到来,作为程序员,更应在此时提高自己,有着更高远的追求。
篇幅有限,如果需要更详细的java架构师学习路线资料可加博主qq:1993712276,或者去图灵官网查看
标签:操作 tps blank 自己的 并发编程 ima strong 读取 程序
原文地址:https://www.cnblogs.com/tulingxueyuan/p/13360706.html