解析Linux中多线程编程并传递多个参数
Linux中多线程编程并传递多个参数实例是本文讲解的内容,不多说,先来看内容。
Linux下的多线程编程,并将多个参数传递给线程要执行的函数。
以下是实验程序的源代码:
pthread.c
#include
#include
#include
#include
#include
struct argument
{
int num;
char string[30];
};
int main()
{
int i,ret;
void *thread1_func(void *);
void *thread2_func(void *);
void *thread_return1,*thread_return2;/*用来接收两个线程退出后的返回值*/
pthread_t thread1,thread2;
struct argument arg1,arg2;
arg1.num=1949;
strcpy(arg1.string,"中华人民共和国成立");
arg2.num=2009;
strcpy(arg2.string,"建国六十周年");
pthread_create(&thread1,NULL,thread1_func,(void *)&arg1);
pthread_create(&thread2,NULL,thread2_func,(void *)&arg2);
for(i=0;i<=2;i++)
{
printf("我是最初的进程!\n");
sleep(2);
}
ret=pthread_join(thread1,&thread_return1);/*等待第一个线程退出,并接收它的返回值*/
if(ret!=0)
printf("调用pthread_join获取线程1返回值出现错误!\n");
else
printf("pthread_join调用成功!线程1退出后带回的值是%d\n",(int)thread_return1);