应用编程-start启动线程
作者:互联网
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
typedef void (*myFunc) (void);
typedef struct THREAD_S
{
int index;
myFunc funcl;
}THREAD_T;
void test1()
{
int i = 0;
while(i++ < 2)
{
printf("test1\r\n");
sleep(1);
}
}
void test2()
{
int i = 0;
while(i++ < 2)
{
printf("test2\r\n");
sleep(2);
}
}
void *pbfunc(void *p)
{
THREAD_T *thread = (THREAD_T*)p;
if(thread && thread->funcl)
{
printf("run before---thread = %p\r\n",thread);
(thread->funcl)();//阻塞,等到线程运行结束才会退出
printf("run after---thread = %p\r\n",thread);
free(thread);
thread = NULL;
}
}
void start(myFunc func2)
{
THREAD_T *thread = NULL;
pthread_t pid = 0;
int ret = -1;
thread = (THREAD_T*)malloc(sizeof(THREAD_T));
thread->funcl = func2;
thread->index = 1;
ret = pthread_creat(&pid,NULL,pbfunc,(void*)thread);
}
void main()
{
start((myFunc)&test1);
start((myFunc)&test2;
}
标签:myFunc,thread,THREAD,int,void,编程,start,线程,printf 来源: https://blog.csdn.net/weixin_43338497/article/details/121916181