所以,我的问题是如何创建pthreads的线程池?我只需要根据全局变量创建一定数量的pthread:
#define NUM_PROCESSES 10
因此,我们的想法是创建一个存储pthread的数组,以便我可以根据需要使用它们。我有一个互斥锁伪代码设置,用于控制哪些将运行。我只是在实际根据#define语句实现这个线程创建时遇到麻烦。
所以C /想法是;
pthread_t *myPthreadIDs[NUM_PROCESSES];
pthread_attr_t threadAttributes;
pthread_attr_init(&threadAttributes);
for(i = 0; i < NUM_PROCESSES; i++){
pthread_create(&myPthreadIDs[i], &threadAttributes, thread_run, theTime);
}
我的问题是,你能用这种方式创建pthread指针吗?
编辑:
所以答案或修正我的错误是在这一行:
pthread_t *myPthreadIDs[NUM_PROCESSES];
我需要将其更改为:
pthread_t myPthreadIDs[NUM_PROCESSES];
重要的是要注意我的困惑是使用pthread_t类型并声明它以便我可以拥有一个池。 pthread_t不是一个地址,因此我不需要创建一个类型指针数组。
感谢@WhozCraig的帮助!