有没有方法可以让当前线程将剩余时间转让给指定线程?

新手上路,请多包涵

我知道很可能没有.但还是来问一问.哪怕是说一下奇技淫巧也好.

阅读 2.6k
2 个回答

不能。因为抢占式多线程的操作系统会确定自行决定线程调度。
放弃当前时间片的方法是有的,比如sleep()或者yield()。多线程库一般会提供这个。不过你放弃了,并不代表给另一个线程的时间片会增加,一般还是固定的。
不过调用系统API是可以将线程绑定到一个特定的CPU内核上,Windows的是SetThreadAffinityMask。如果两个高优先级的线程绑定在同一个CPU,这样你放弃时间片的话,很有可能会调度另一个线程。

我理解你得剩余时间,应该指的是处理器资源,因为是CPU的资源,对于线程本身是不存在转让一说的,只有申请和释放,否则就天下大乱啦。
另一方面,如果是要控制线程执行顺序的话,倒是有一些方法,比如使用线程的Join方法,或者设置优先级

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题