join执行时间问题

join执行时间问题

假设A线程调用join(1);,此时时间片为2毫秒,当A花1毫秒的时间去执行2毫秒的时间片的途中由于
时间原因让出了执行权让B线程去执行操作,B执行完之后,AB重新随机取争夺执行权。 
1. 如果下一下A争夺到了执行权,A是继续取执行那剩下的时间片嘛?还是说剩下的时间片是由B去执行掉 了?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕酷酷 2019-09-09 14:53:47

同学你好,这里同学理解有误,由于时间片的运行时间很短,如果进程在时间片结束前结束,CPU会立即进行切换,执行下一个阻塞进程,所以不会产生剩余的时间的。这样也可以更高的提高效率。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 jia_蛙 #1
    每个进程被分配一时间段,称作它的时间片;这个是我刚才查到的,我一直忽略了进程和线程。 老师,请问如果一个线程调用了join()的方法,这个线程消耗的时间片是由系统随机分配的嘛?线程去消耗这个系统分配的时间片其实就是去消耗进程中一开始CPU给进程分配的时间片嘛?如果进程的时间片被消耗完了,cpu是不是重新给它分配呢?
    2019-09-09 17:06:49
  • 好帮手慕酷酷 回复 提问者 jia_蛙 #2
    同学你好,第一个问题:线程消耗的时间片是由系统随机分配的。第二个问题,你的理解是正确的。第三个问题:如果进程的时间片被消耗完了,线程还没有运行完成,这时这个线程将会被堵塞,然后进入等待队列,等待资源分配,等待系统重新分时间片给它了,它会再一次执行。 如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-09-09 17:22:08
  • 提问者 jia_蛙 回复 好帮手慕酷酷 #3
    我明白了,第一次争夺是进程之间为了 系统分配时间片而争夺,这次争夺,每个进程都会参与,争夺到的进程分配到了时间片之后将不在参与下面的系统分配时间片争夺,当所有进程都争夺完,系统为他们分配了时间片之后。 进程们开始随机争夺执行时间片的权限,争夺到了系统会给他们随机本次执行的时间片。而这个时间片是建立在进程们第一次争取时间片的基础上的。 老师我这样的理解对吗?如果是这样,那假如A进程争夺到了执行时间片的权限,那么是由A进程里的多个线程同时间执行这个时间片嘛?
    2019-09-09 17:39:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师