我的程序的基本功能:创建计数器数(0),为每个线程创建指令数,创建包含计数器*,重复和work_fn(增量,减量等)的结构指令。 程序将构建所有的动态结构(已经编码) 然后产生线程并加入。一个线程可以有多个指令。C线程参数
static void* worker_thread(void *arg){
long long *n;
pthread_mutex_lock(&lock1);
n = (long long *) arg;
printf("Testing: %lld.\n", n);
pthread_mutex_unlock(&lock1);
return NULL;
}
//nthreads is the total number of threads
for(int i=0; i < nthreads ; i++){
pthread_create(&thread_id[i], NULL, worker_thread, &i); //Problem
}
for(int i=0; i < nthreads ; i++){
pthread_join(thread_id[i], NULL);
}
我想测试线程函数,首先创建线程数然后加入他们。 但我似乎无法将当前线程数[我]在我的情况下传递给工作线程函数。
由于某种原因,我得到的地址打印出来,而不是 – Jono 2011-04-29 12:51:57
谢谢!但我得到了一个警告:转换为从主函数不同大小的整数指针 – Jono 2011-04-29 12:55:30
我确实有很长的n =(long long)arg;和(void *)我tho = \ – Jono 2011-04-29 13:00:59