Linux 多线程编程 实例 1

xiaoxiao2025-12-09  4

子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。

 

#include <pthread.h>#include <stdio.h>#include <unistd.h>

static pthread_mutex_t mtx=PTHREAD_MUTEX_INITIALIZER;static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;

static void *thread_func(void *arg){ //sleep(10); int j=3; while(j--) {

pthread_mutex_lock(&mtx); pthread_cond_wait(&cond,&mtx); //pthread printf("10 times complete.\n"); //pthread pthread_mutex_unlock(&mtx); }}

int main(void *arg){ pthread_t tid; pthread_create(&tid,NULL,thread_func,NULL); //sleep(5); int i=50; while(i--) { sleep(2); pthread_mutex_lock(&mtx); printf("100 times complete!.\n"); pthread_cond_signal(&cond);

pthread_mutex_unlock(&mtx); } //pthread_join(tid,NULL); //pthread_cancel(tid); pthread_join(tid,NULL);}

转载请注明原文地址: https://www.6miu.com/read-5040593.html

最新回复(0)