condition.c
来自「此源码是著名的教材BeginningLinux Programming中文名字叫」· C语言 代码 · 共 53 行
C
53 行
#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 + =
减小字号Ctrl + -
显示快捷键?