⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 condition.c

📁 在Linux环境下用c编写的线程实例源码
💻 C
字号:
#include <stdio.h> 
#include <unistd.h>
#include <pthread.h>  

pthread_mutex_t	mutex; 
pthread_cond_t	cond; 

void *thread1(void *arg) 
{ 
	pthread_cleanup_push (pthread_mutex_unlock, &mutex); 

	while(1) { 
		printf ("thread1 is running\n"); 
		pthread_mutex_lock (&mutex); 
		pthread_cond_wait (&cond, &mutex); 
		printf ("thread1 applied the condition\n"); 
		pthread_mutex_unlock (&mutex); 
		sleep (4); 
	} 

	pthread_cleanup_pop (0); 
} 

void *thread2(void *arg) 
{ 
	while(1) { 
		printf ("thread2 is running\n"); 
		pthread_mutex_lock (&mutex); 
		pthread_cond_wait (&cond, &mutex); 
		printf ("thread2 applied the condition\n"); 
		pthread_mutex_unlock (&mutex); 
		sleep (1); 
	} 
}
 
int main(void) 
{ 
	pthread_t tid1, tid2; 

	printf ("condition variable study! \n"); 
	pthread_mutex_init (&mutex, NULL); 
	pthread_cond_init (&cond, NULL); 
	pthread_create (&tid1, NULL, (void *) thread1, NULL); 
	pthread_create (&tid2, NULL, (void *) thread2, NULL); 

	do { 
		pthread_cond_signal (&cond); 
	} while (1); 

	sleep (50); 
	pthread_exit (0); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -