请教,能否按照截图上的分析多线程执行流程的这种方式,分析一下,正确的多个线程的执行流程应该是什么样的?
如有指点,非常感谢.
你这里是多个线程共享变量count,但是它又不是volatile类型,因而各个线程对count操作后,并不能马上让其他线程看到修改后的数据,再加上指令重排等优化,因而count的输出是完全没有规律的,可以输出任何可能的数据
每个线程之间的执行顺序 在没有同步或者互斥的情况下,都是随机的
你是五个线程共同访问同一个资源数据(count = 5),你开启了五个线程,但是对共享资源池没有加限制,就是说,当线程1正在执行时,线程5也在执行,可能5执行的速度比较快,所以5先执行完,所以你就无法根据打印结果反推出线程的执行流程,除非你增加线程排它锁,只允许一个线程执行。
http://blog.csdn.net/Gui_m/article/details/71649852这是我的多线程的介绍,你看下。
http://blog.csdn.net/Gui_m/article/details/71649852
多线程的特性之一就是无序性