您的位置:首页 > 大数据 > 人工智能

线程,是不是打破了“程序是顺序执行“的真谛?如一个main函数中,顺序定义了二个线程,并启动,第一个线程还没执行完,第二个线程就开始执行了

2017-12-04 11:55 836 查看
线程,是不是打破了“程序是顺序执行“的真谛?如一个main函数中,顺序定义了二个线程,并启动,第一个线程还没执行完,第二个线程就开始执行了。



答案是:

没有。

1)main函数中的如下代码是顺序执行的:

Thread thread = new Thread(runnable);

thread.start();

Thread thread2 = new Thread(runnable2);

thread2.start();

2)每一个线程的runnable中的run代码是顺序执行的。

3)thread.start();这一句这是让线程启动,而不是等线程执行完。

总结:

”程序是顺序执行的“看来要加个限定了,任何真理都有一定的适用条件,就像”相对论“,在某种情况下也不适用一样。

”程序是顺序执行的“这个真谛,要改为“原子程序(即最小单元的不可分割的程序)是顺序执行的”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐