#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
void *myfunc1(void *arg);
void *myfunc2(void *arg);
int main()
{
pthread_t pthid1;
pthread_t pthid2;
long clientfd = 3;
int ival=0;
int iret=0;
void **my;
pthread_create(&pthid1, NULL, myfunc1, (void*)clientfd); // create之后线程就会启动
pthread_create(&pthid2, NULL, myfunc2, (void*)clientfd);
iret = pthread_join(pthid1,(void**)&ival);
// iret = pthread_join(pthid1,my); // 第二个参数必须传void **retval类型
printf("begin join1:\n");
// printf("iret=%d, ival=%d\n", iret, ival);
// printf("iret=%d, my1=%p\n", iret, my);
// printf("iret=%d, my1=%p\n", iret, *my);
pthread_join(pthid2,NULL);
printf("begin join2:\n");
printf("close\n");
return 0;
}
void *myfunc1(void *arg)
{
long ii = (long)arg;
printf("myfunc1函数参数为: %d\n", ii);
for(int jj=0; jj<=3; jj++) {
printf("(1)jj:%d\n", jj);
sleep(1);
}
return (void*)3;
// pthread_exit(3);
}
void *myfunc2(void *arg)
{
long ii = (long)arg;
printf("myfunc2函数参数为: %d\n", ii);
for(int jj=0; jj<=6; jj++) {
printf("(2)jj:%d\n", jj);
sleep(1);
}
}
c++多线程基本样例
最新推荐文章于 2023-02-10 15:30:28 发布