the*_*sdj 11 c unix process-management cross-platform
在Windows上,我可以这样做:
HANDLE hCurrentProcess = GetCurrentProcess();
SetPriorityClass(hCurrentProcess, ABOVE_NORMAL_PRIORITY_CLASS);
Run Code Online (Sandbox Code Playgroud)
我怎么能在*nix上做同样的事情?
Sil*_*der 23
尝试:
#include <sys/time.h>
#include <sys/resource.h>
int main(){
setpriority(PRIO_PROCESS, 0, -20);
}
Run Code Online (Sandbox Code Playgroud)
请注意,您必须以超级用户身份运行才能使其正常工作.
(有关更多信息,请在提示符下键入"man setpriority".)
小智 5
如果你想在unix下执行类似的操作(以root用户身份)chmod你的任务并设置s位.然后,您可以在运行时更改您的运行对象,优先级,线程调度等.
只要你没有编写一个带有bug的大型多线程应用程序就可以了,这样你就可以接管一个48 CPU的盒子并且没有人可以关闭你,因为你的每个CPU都旋转100%,所有线程都设置为SHED_FIFO(运行完成)以root身份运行.
不......我不会从经验中说话......