Linux线程中创建子线程实验

在主进程中创建一个线程,在线程中再创建两个子线程,代码如下:

 

#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 !

 

实验证明这样操作是可行的。

你可能感兴趣的:(Linux应用编程)