-2
我想學習C語言中的多線程編程並試圖理解基本程序。我無法理解runner函數,爲什麼它返回一個指向void類型的指針並傳遞一個參數,該參數也是void指針。另外,我無法理解main的參數。C語言中使用Pthread的基本多線程程序說明
int sum;/this data is shared by the thread(s)
void *runner(void *param);/the thread
int main(int argc, char *argv[])
{
pthread_t tid;/the thread identifier/
pthread.attr_t attr;/set of thread attributes/
if (argc != 2) {
fprintf(stderr,"usage: a.out <integer value>\n");
return -1;
}
if (atoi(argv[1]) < 0) {
fprintf(stderr,"%d must be >= 0\n",atoi(argv[1]));
return -1;
/get the default attributes/
pthread.attr.init (&attr) ;
/create the thread/
pthread^create(&tid,&attr,runner,argv[1]);
/wait for the thread to exit/
pthread_join (tid, NULL) ;
printf("sum = %d\n",sum);
/The thread will begin control in this function/
void *runner(void *param)
{<br />
int i, upper = atoi(param);
sum = 0;<br />
for (i = 1; i <= upper; i
sum += i;
pthread_exit (0) ;
請查看http://stackoverflow.com/editing-help#code - 這需要更清晰地格式化。 – djechlin
請以易於理解的方式修復代碼 –
這裏似乎沒有具體問題。請在瀏覽網頁時尋找解釋。網絡上有很多。 –