在主进程中创建一个线程,在线程中再创建两个子线程,代码如下:
#include
#include
void thread();
void child_thread1();
void child_thread2();
int main()
{
pthread_t id;
pthread_create(&id,NULL,(void*)thread,NULL);
pthread_join(id,NULL);
return 0;
}
void thread()
{
pthread_t id1,id2;
pthread_create(&id1,NULL,(void*)child_thread1,NULL);
pthread_create(&id2,NULL,(void*)child_thread2,NULL);
pthread_join(id1,NULL);
pthread_join(id2,NULL);
}
void child_thread1()
{
int i;
for(i=0;i<5;i++)
{
printf("I'm child_thread1 !\n");
sleep(1);
}
}
void child_thread2()
{
int i;
for(i=0;i<5;i++)
{
printf("I'm child_thread2 !\n");
sleep(1);
}
}
执行结果如下:
I'm child_thread1 !
I'm child_thread2 !
I'm child_thread1 !
I'm child_thread2 !
I'm child_thread1 !
I'm child_thread2 !
I'm child_thread1 !
I'm child_thread2 !
I'm child_thread1 !
I'm child_thread2 !
实验证明这样操作是可行的。