请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

执行两遍executerService.execute并没有让两个线程并发

老师好,汇报一下我的实验结果。
我想试试不加synchronized的乱序效果,结果并没有乱序。哪怕我让每次打印后,线程睡1秒,仍然也不会乱序。
就是下图执行两次test1的代码。
图片描述
)

后来用paralleStream试了一下,才看到乱序的效果了。然后加上synchronized,就又不乱序了。
图片描述
所以给我的感觉,executerService.execute连续执行两遍,并不能让系统并发。不知道我这么理解对不对。

正在回答

1回答

你好,我感觉你对并发和乱序理解的不ok啊,并发是同一时间可能有多个线程在同时执行,仅此而已,而且有使用共享资源才可能出现线程安全问题,与他对应的是串行(一个线程完全执行完才能执行另一个)。乱序是特定的代码在指定的场景下才可能出现。

0 回复 有任何疑惑可以回复我~
  • 提问者 冬之诗 #1
    谢谢老师解答。确实是理解的不OK。其实耐心把整节课看完就好了,课程后半段已经有答案了。以后再问问题一定注意,首先要把整节课看完,其次仔细多看两遍代码,还不明白再问~
    回复 有任何疑惑可以回复我~ 2020-02-21 05:51:07
  • Jimin 回复 提问者 冬之诗 #2
    哈哈,不影响,有问题可以随时提问
    回复 有任何疑惑可以回复我~ 2020-02-21 11:32:48
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号