一个线程同时处理护理床起背动作和护理床屈腿动作-C语言
#include <stdio.h> #include <pthread.h>
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; // 初始化互斥量
void *handle_back(void *arg) { int i; pthread_mutex_lock(&mutex); // 上锁 printf("处理护理床起背动作...\n"); for (i = 0; i < 5; i++) { printf("护理床正在起背...\n"); sleep(1); } pthread_mutex_unlock(&mutex); // 解锁 return NULL; }
void *handle_legs(void *arg) { int i; pthread_mutex_lock(&mutex); // 上锁 printf("处理护理床屈腿动作...\n"); for (i = 0; i < 5; i++) { printf("护理床正在屈腿...\n"); sleep(1); } pthread_mutex_unlock(&mutex); // 解锁 return NULL; }
int main() { pthread_t tid1, tid2; pthread_create(&tid1, NULL, handle_back, NULL); // 创建线程1处理护理床起背动作 pthread_create(&tid2, NULL, handle_legs, NULL); // 创建线程2处理护理床屈腿动作 pthread_join(tid1, NULL); pthread_join(tid2, NULL); return 0; }
原文地址: https://www.cveoy.top/t/topic/gUd 著作权归作者所有。请勿转载和采集!