java 两程序 如图 第一个程序j输出永远是1(0+1之后),而第二个程序count输出三次分别是1,2,3 为什么?

如题所述

第1个回答  2015-08-11
很明显,第一种方式,你新建了三个对象 ,他们的线程毫不相干,各自跑各自的,成员变量也是各自对象的 ,不会共享的 ,所以j永远是1。

但是第二种方式 只是new了一次目标对象 ,但是线程创建了三个,然后把目标对象放入三个线程中,在这种方式下,可以多个线程共享同一个目标对象,所以非常适合多个相同线程来处理同一份资源的情况,成员变量是共享的所以会出现count增加。
这其实也是俩种线程创建方式不同的优劣区分之一。本回答被提问者采纳
相似回答