以下是我想實現線程數組的一個c程序。 有兩個線程函數。我想在每個函數內發送一個int值。但是代碼沒有給出任何輸出。 示例程序:實現線程數組
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
void * threadFunc1(void * arg)
{
int id = *((int *) arg);
printf("Inside threadfunc2 for thread %d",id)
}
void * threadFunc2(void * arg)
{
int i= *((int *)arg);
printf("Inside threadfunc2 for thread %d",i)
}
int main(void)
{
pthread_t thread[10];
for(int i=0;i<10;i++)
{
pthread_create(&thread[i],NULL,threadFunc1,(void*)&i); // want to send the value of i inside each thread
pthread_create(&thread[i],NULL,threadFunc,(void*)&i);
}
while(1);
return 0;
}
代碼中有什麼問題嗎?
如果您使用C++,請使用'std :: thread',這是一回事。然後,你問題中的C標籤也是錯誤的。在任何情況下,它都缺少有關代碼在執行時的作用以及您的期望。我的水晶球告訴我,你應該嘗試使用'%p'格式說明符輸出傳遞給線程函數的指針,或者只是將其傳遞給'std :: cout'。 –
請參閱[@UlrichEckhardt](http://stackoverflow.com/questions/33183877/implementing-an-array-of-thread#comment54174239_33183877)的評論。這就是爲什麼每個人都會告訴你**不要用C++標記**來標記c問題。 –
你能分享獲得的輸出嗎? –