我爲線程創建了一個函數,但是我想將多個參數傳遞給該函數。如何將多個參數傳遞給線程函數
這裏是我的源代碼:
#include "work.h"
#include <stdio.h>
#include <unistd.h>
#include <pthread.h> // compile with -lpthread
int count = 20;
void* ChildProc(void* arg)
{
int i;
for(i = 1; i <= count; i++)
{
printf("%s:%d from thread <%x>\n", arg, i, pthread_self());
DoWork(i);
}
return NULL;
}
void ParentProc(void)
{
int i;
for(i = count/2; i > 0; i--)
{
printf("Parent:%d from thread <%x>\n", i, pthread_self());
DoWork(i);
}
}
int main(void)
{
pthread_t child;
pthread_create(&child, NULL, ChildProc, "Child");
ParentProc();
pthread_join(child, NULL); // make child a non-daemon(foreground) thread
}
現在我該怎樣傳遞多個參數ChildProc()方法?
一種方法是傳遞數組或結構。但是如果我想傳遞多個變量而沒有數組或結構呢?
是否有任何其他類似於pthread_create()的方法可以支持多個參數? – Searock 2010-09-09 05:59:27