参照博文:
http://blog.csdn.net/lxmky/article/details/7669296
写的不错,
#include #include #include #include #include #include typedef struct _StrParam { bool flag; int data; }SP,*PSP; /*seconds: the seconds; mseconds: the micro seconds*/ void setTimer(int seconds, int mseconds) { struct timeval temp; temp.tv_sec = seconds; temp.tv_usec = mseconds; select(0, NULL, NULL, NULL, &temp); printf("timer\n"); return ; } void *thread(void* arg) { printf("this is thread process %d\n", (*(PSP)arg).data); while((*(PSP)arg).flag) { setTimer(2, 100); } return arg; } int main() { //printf("this a main process \n"); pthread_t m_thread; int a = 100; SP s1; s1.data = 100000; s1.flag = true; int ret; int*thread_ret = NULL; ret = pthread_create(&m_thread,NULL,thread,&s1);//(线程函数多为静态,或全局函数)? .. 第四个参数就是线程传入的参数 pthread_join(m_thread, (void**)&thread_ret); printf( "thread_ret = %d.\n", *thread_ret); return 0; }