因为线程的执行本身就是不确定的,加了synchronized关键字只能确保互斥访问这段代码以及变量的可见性,即某线程在修改共享变量(通过自己的工作内存来修改)时,其他的所有线程无法获得共享变量的信息。所以synchronized并不能保证程序的执行顺序。所以即使加了synchronized也可能会出现0。顺序是随机的,看jVM内存以及CUP的调度了。
                
                    
                    2015-08-30
                
            楼下的话差矣。。多线程执行,可以说是很“乱”的,和不是按照你代码写的顺序那样子执行的。。一旦所有线程调用了start()后,那么就会出现
“不可控”的局面。。。ps:强烈要求慕课提供回复功能。
                “不可控”的局面。。。ps:强烈要求慕课提供回复功能。
                    
                    2015-08-30
                
            volatile本身不保证获取和设置操作的原子性,仅仅保持修改的可见性。但是java的内存模型保证声明为volatile的long和double变量的get和set操作是原子的。转自慕课问答,楼下有疑惑的亲们看一下吧~~~
                
            说执行结果再解释的 我只能说你不懂线程   不懂别说话  线程基本知识都不懂。你来看这个看嘛。。中国教育不是让你小学都没读就直接去上大学的。去大学玩吗??估计你也不会玩
                
                    
                    2015-08-06
                
             
             
        













