用于exit函数#include<sched.h>// 引入调度头文件,提供CPU亲和性相关的函数和宏#include<string.h>// 虽然在这个示例中未直接使用,但通常用于字符串操作intmain(){cpu_set_t cpuset;// 定义一个cpu_set_t类型的变量cpuset,用于表示CPU集合size_t cpusetsize=sizeof(cpu_set_t);// 获取cpu_set_t类型的大...
cpu_set_t cpuset; // 定义一个cpu_set_t类型的变量cpuset,用于表示CPU集合 size_t cpusetsize = sizeof(cpu_set_t); // 获取cpu_set_t类型的大小,用作sched_setaffinity和sched_getaffinity的参数 // 验证并打印当前进程的CPU亲和性 cpu_set_t get_cpuset; // 定义一个变量get_cpuset用于获取当前进程...
CPU_SET(n,&mask); //设置亲和力值,绑定cpu核到(n)核上 /*设置进程号为pid的进程运行在mask所设定的CPU上 * 第二个参数cpusetsize是mask所指定的数的长度 * 通常设定为sizeof(cpu_set_t) * 如果pid的值为0,则表示指定的是当前进程*/intsched_setaffinity(pid_t pid, size_t cpusetsize, cpu_set_...
CPU_SET(n,&mask); //设置亲和力值,绑定cpu核到(n)核上 /*设置进程号为pid的进程运行在mask所设定的CPU上 * 第二个参数cpusetsize是mask所指定的数的长度 * 通常设定为sizeof(cpu_set_t) * 如果pid的值为0,则表示指定的是当前进程*/intsched_setaffinity(pid_t pid, size_t cpusetsize, cpu_set_...
CPU_SET(1, &cpuset); 调用sched_setaffinity函数: 使用sched_setaffinity函数将当前进程或线程的CPU亲和性设置为指定的CPU集合。该函数的原型如下: c int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *mask); 其中,pid是要设置亲和性的进程或线程的ID(对于当前进程,可以使用0...
int set_sched_affinity(const std::vector<int>& cpu_ids) { // #define CPU_SETSIZE 1024 // #define __NCPUBITS (8 * sizeof (unsigned long)) // typedef struct // { // unsigned long __bits[CPU_SETSIZE / __NCPUBITS]; // } cpu_set_t; ...
5 void CPU_CLR(int cpu, cpu_set_t *set); 6 void CPU_SET(int cpu, cpu_set_t *set); 7 int CPU_ISSET(int cpu, cpu_set_t *set); 8 9 int sched_getaffinity(pid_t pid, unsigned int cpusetsize, cpu_set_t *mask); 10
cpusetsize:set所指定的数的长度,通常设定为sizeof(cpu_set_t) set:运行进程的CPU,可以通过以下函数操作set: void CPU_ZERO(cpu_set_t *set); // Clears set, so that it contains no CPUs. void CPU_SET(int cpu, cpu_set_t *set); // Add CPU cpu to set. ...
刚开始理解代码的时候,我谷歌了一下sched_setaffinity这个系统调用,搜到了android源码里的声明头文件: #ifndef _SCHED_H_#define _SCHED_H_#include<bits/timespec.h>#include<linux/sched.h>#include<sys/cdefs.h>__BEGIN_DECLS...intsched_getcpu(void);#ifdef __LP64__#define CPU_SETSIZE 1024#else#d...
第二个参数指定mask所指空间的大小,通常为sizeof(cpu_set_t)。 第三个参数mask的类型为cpu_set_t,即CPU集合,GNU的c库(需要在include头文件之前定义__USE_GNU)还提供了操作它们的宏: voidCPU_CLR(int cpu, cpu_set_t *set); intCPU_ISSET(int cpu, cpu_set_t *set); voidCPU_SET(int cpu, cpu_...