java高并发的核心,要了解并熟悉java的内存模型,并涉及相关的资源临界值。
java的内存模型围绕多线的技术要点:原子性,可见性,有序性。
原子性:原子性是指整个操作过的不可中断性,明确的说就是线程在执行过程中是顺序执行的,一旦开始操作将不受其他线程的干扰。比如对已经全局的变量进行复制的操作,每个线程都可以对其进行重新设值的操作,但是在多线程执行中,没有安全机制的情况下,不能保证其操作的原子性,有可能最终的结果不是你想看到的。所以最先的设置就是原子性。
可见性:可见性就是一个线程修改了某一个共享的变量或者资源,其他线程能够立即知道这个修改,可以参考java中的volatile关键字的效果。如果没有安全机制,一个全局变量的设置,在多线程执行下,一个线程对变量的修改对其他线程可能是不可见的,因为在多线程并发操作情况下,两个线程会同时修改该变量。
有序性:在单线程执行下,所有的代码操作计划都是顺序执行的,前面的代码总是优先执行。但是在多线程中,程序的执行顺序有可能就会出现混乱。
来源:oschina
链接:https://my.oschina.net/u/778766/blog/813196