本文主要是介绍应用编程-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;
}
这篇关于应用编程-start启动线程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!