对于 Linux 操作系统,sched_setaffinity就是你的答案。从 Linux 内核 2.5.8 开始支持它。
\n\n姓名
\n\nsched_setaffinity, sched_getaffinity \xe2\x80\x94 设置并获取进程的 CPU 亲和性掩码
\n\n#define _GNU_SOURCE\n#include <sched.h>\n\nint sched_setaffinity( pid_t pid,\n size_t cpusetsize,\n cpu_set_t *mask);\n\nint sched_getaffinity( pid_t pid,\n size_t cpusetsize,\n cpu_set_t *mask);\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n关联掩码实际上是每线程的属性,可以为线程组中的每个线程独立调整。调用 gettid(2) 返回的值可以在参数 pid 中传递。将 pid 指定为 0 将为调用线程设置属性,并传递调用返回的值getpid(2) 将为线程组的主线程设置属性。(如果您使用的是 POSIX\n 线程 API,则使用\n pthread_setaffinity_np(3) 而不是\n sched_setaffinity()。)
\n
归档时间: |
|
查看次数: |
3989 次 |
最近记录: |