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