本文主要是介绍C++线程传递多个参数demo(四十三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.test.cpp
/*pthread_join使一个线程等待另一个线程结束;pthread_join( t)等待线程t退出,并释放t线程所占用的资源。代码中如果没有pthread_join(),主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join()后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。*/
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
using namespace std;struct stu
{ int age;char *name;long long len;
}; //传递多个参数
void *thread2(void *data)
{struct stu *stu1 = (struct stu*)data; printf(" age = %d\n name = %s\n len = %lld\n",stu1->age, stu1->name, stu1->len);
}int main(void)
{pthread_t id2;int ret;struct stu student;student.age=10;student.name="Hello World!";student.len = 12345678901111;ret=pthread_create(&id2,NULL,thread2,(void *)&student);if(ret!=0){printf ("Create pthread2 error!\n");}//主进程等待线程id2执行结束,不然有可能主进程先执行完而执行不到id2线程的情况pthread_join(id2, NULL);return 0;
}2.编译# g++ test.cpp -pthread
这篇关于C++线程传递多个参数demo(四十三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!