我有一个类似守护程序的应用程序,它在初始化时执行了一些磁盘密集型处理。为了避免减缓其他任务我做这样的事情在Windows上:在Linux上相当于SetPriorityClass
SetPriorityClass(GetCurrentProcess(), PROCESS_MODE_BACKGROUND_BEGIN);
// initialization tasks
SetPriorityClass(GetCurrentProcess(), PROCESS_MODE_BACKGROUND_END);
// daemon is ready and running at normal priority
据我所知,在Unix系统可致电我漂亮或setpriority并降低进程的优先级,但我不能提高它回到它是在过程创建(即没有等同于第二个SetPriorityClass调用),除非我拥有超级用户权限。有没有机会以另一种方式去做我失踪的事情? (我知道我可以创建一个运行在低优先级的线程初始化,并等待它在主线程上完成的,但我宁愿宁愿回避的态度)
编辑:积分为等效SetThreadPriority(GetCurrentThread(), THREAD_MODE_BACKGROUND_BEGIN);
和SetThreadPriority(GetCurrentThread(), THREAD_MODE_BACKGROUND_END);
Unices - 我喜欢它。 – 2011-04-22 16:28:58