我对在多线程进程上使用 fork 有疑问。如果一个进程有多个线程(已经使用 pthread_create 创建并执行了 pthread_join)并且我调用 fork,它会复制分配给子进程中线程的相同函数还是创建一个可以重新分配函数的空间?
我使用任务集将进程固定到特定核心,但还有其他进程共享该核心。是否可以知道哪些进程明确共享哪些核心?例如,获取诸如“核心 0 上运行着进程 1、202、4043 等”之类的信息。
我正在向分配空间编写一小段代码,并在其中进行读写以测试缓存监视工具。代码如下:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#define times 2
void write_in_space(int* x, int size){
printf("\n Entering write in space \n");
int i;
for(i = 0; i< size; i++){
*(x + i) = i;
i++;
}
printf("\n Exiting write_in_space \n");
}
void read_in_space(int* x, int size){
printf("\n Entering read_in_space \n");
int i = 0;
while(i < size){
*(x + i);
i++;
}
printf("\n Exiting read_in_space \n");
}
void assign_and_work(int k, int l, int m, int mm){
printf("\n Entering …Run Code Online (Sandbox Code Playgroud)