我知道很可能没有.但还是来问一问.哪怕是说一下奇技淫巧也好.
我理解你得剩余时间,应该指的是处理器资源,因为是CPU的资源,对于线程本身是不存在转让一说的,只有申请和释放,否则就天下大乱啦。
另一方面,如果是要控制线程执行顺序的话,倒是有一些方法,比如使用线程的Join方法,或者设置优先级
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
不能。因为抢占式多线程的操作系统会确定自行决定线程调度。
放弃当前时间片的方法是有的,比如sleep()或者yield()。多线程库一般会提供这个。不过你放弃了,并不代表给另一个线程的时间片会增加,一般还是固定的。
不过调用系统API是可以将线程绑定到一个特定的CPU内核上,Windows的是SetThreadAffinityMask。如果两个高优先级的线程绑定在同一个CPU,这样你放弃时间片的话,很有可能会调度另一个线程。