#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <semaphore.h>
#include <dirent.h>
#include <pthread.h>
#include <time.h>

void* task2(void* arg)
{
    int i = 0;
    while (i++ < 10)
    {
        sleep(1);
        printf("task2 running...\n");
    }

    printf("task2 exit...\n");
    return NULL;
}

void* task1(void* arg)
{
    pthread_t tid;
    pthread_create(&tid, NULL, (void*)task2, NULL);  // 创建线程2
    pthread_join(tid, NULL);  // 等待线程2退出

    printf("task1 exit...\n");
    return NULL;
}

int main(int argc, char *argv[])
{
    pthread_t tid;

    pthread_create(&tid, NULL, (void*)task1, NULL);    // 创建线程1
    pthread_join(tid, NULL);    // 创建线程1退出

    printf("Main thread exit...\n");

    return 0;
}

程序输出:

[root@localhost ~]# gcc thread_running.c -lpthread -o thread_running
[root@localhost ~]# ./thread_running
task2 running...
task2 running...
task2 running...
task2 running...
task2 running...
task2 running...
task2 running...
task2 running...
task2 running...
task2 running...
task2 exit...  // 线程2退出
task1 exit...  // 线程1退出
Main thread exit...  // 主线程退出
[root@localhost ~]#

总结:在线程中创建线程,在线程中等待线程,等待只是为了回收资源。

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2022-01-09
  • 2021-05-13
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-04
猜你喜欢
  • 2022-12-23
  • 2021-12-01
  • 2021-12-15
  • 2022-12-23
  • 2021-04-07
  • 2022-12-23
  • 2022-01-25
相关资源
相似解决方案