课程
/后端开发
/Java
/深入浅出Java多线程
问什么是交替运行?为什么不是Mr的100登台结束后Ms才运行。
还有就是中途暂停,为什么Mr运行10次后直接运行Ms,中途并没有1秒的停顿,Ms可以正常暂停
2017-03-08
源自:深入浅出Java多线程 2-3
正在回答
因为张三还没吃完饭啊 sleep还不到1秒呢
张三不用,李四就可以用电脑了,李四不用了,这时张三又可以用,这样的话,电脑应该一直处于使用状态,为什么每次张三用完了。李四马上就可以使用,而李四用完了张三要等会才去用。
举个例子,
老板让张三去用公司电脑写C语言,让李四用公司电脑去写java。但公司只有一台电脑。
这时张三先抢到了电脑,写了2行之后,张三饿了去吃饭,这时李四看到电脑空了出来便开始写java,等张三回来之后发现电脑已经被李四用了,所以只能在旁边等待,过了一会李四也饿了,便出去吃饭,张三便继续用电脑些c语言。
这个流程中你可以理解张三是Mr,李四是Ms,公司电脑是cpu,当张三饿了之后(即sleep),那么电脑就空了出来,李四就可以使用来工作了,这个就是交替运行。同时张三饿了去吃饭的时候并不会影响李四并没有去吃饭,所以没有停顿,即不会出现张三去吃饭(sleep),而李四没有和张三一起去吃饭的情况。
cyc川 提问者
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
6 回答请问,在这个例子中,为什么不能用 thread.sleep(1000),而只能用 Thread.sleep(1000)
3 回答这个运行结果没有顺序啊
1 回答线程wait的执行顺序
1 回答为什么主线程Thread.sleep(1000)后,会清除别的线程的interrupt状态呢?
2 回答请教一下呢,run方法调用和线程运行顺序的问题