我正试图让PTHREADS分别在每个CORE上运行。
我有我的代码:
#include <stdio.h>
#include <pthread.h>
int LOOP;
pthread_barrier_t barrier;
void *thread(){
int i=0;
int count =0;
pthread_barrier_wait(&barrier);
for (; i<LOOP; i++)
count++;
pthread_barrier_wait(&barrier);
return NULL;
}
int main(int argc, char* argv[])
{
int nthreads = atoi(argv[1]);
int i;
LOOP = atoi(argv[2]);
pthread_t threads[nthreads];
pthread_barrier_init(&barrier, NULL, nthreads);
for (i=1; i < nthreads; i++)
pthread_create(&(threads[i]), NULL, thread, NULL);
thread();
return 0;
}
但在分析时,我看到线程在同一个Core上运行。
我正在使用Linux。是否存在我忘记设置的环境设置?
谢谢, 阿里克