我的程序的基本功能:創建計數器數(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