#include <iostream> #include <pthread.h> //多线程相关操作头文件,可移植众多平台 using namespace std; struct mypara { int para1; //参数1 char *para2; //参数2 pthread_t wait; }; void* thread1( void* args ) //本函数演示的是数据的传出 { mypara *my = (mypara *)args; srand(unsigned(time(0))); my->para1 = rand()%100; my->para2 = "。"; cout << "给结构体赋值结束"<< endl; return 0; } void* thread2( void* args ) //本函数演示的是数据的传入 { mypara *str_in = (mypara *)args; cout << "线程2开始运行........................" <<endl; pthread_join(str_in->wait,NULL); //需要等待thread1线程给struct 结构体赋值结束后才能运行 cout << "线程1产生的随机数是:" << str_in->para1<< " "<< str_in->para2 <<endl; return 0; } int main() { pthread_t tid1,tid2; mypara my_para; int ret = pthread_create( &tid1, NULL, thread1, (void *)&my_para ); //pthread_join(tid1,NULL); my_para.wait = tid1; pthread_create( &tid2, NULL, thread2, (void *)&my_para ); system("pause"); pthread_exit( NULL ); }
c++多线程参数的传递——通过结构体传递参数。(pthread多线程类库,不能在x64位上编译)
时间: 2024-10-29 10:45:48