多线程的顺序执行
Posted 每天告诉自己要努力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程的顺序执行相关的知识,希望对你有一定的参考价值。
方法1,信号量
//使用信号量实现多线程的顺序执行
#include <stdio.h>
#include <semaphore.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
sem_t sem_a, sem_b, sem_c;
void *fun_a()
while (1)
sem_wait(&sem_a);
printf("A");
sem_post(&sem_b);
void *fun_b()
while (1)
sem_wait(&sem_b);
printf("B");
sem_post(&sem_c);
void *fun_c()
while (1)
sem_wait(&sem_c);
printf("C\\n");
sem_post(&sem_a);
int main()
sem_init(&sem_a, 0, 1);
sem_init(&sem_b, 0, 0);
sem_init(&sem_c, 0, 0);
pthread_t thread_a, thread_b, thread_c;
pthread_create(&thread_a, NULL, fun_a, NULL);
pthread_create(&thread_b, NULL, fun_b, NULL);
pthread_create(&thread_c, NULL, fun_c, NULL);
while (1);
return 0;
方法2
以上是关于多线程的顺序执行的主要内容,如果未能解决你的问题,请参考以下文章