资源简介
ubuntu系统下C++程序,信号量实现互斥例子爸爸女儿儿子苹果橘子
操作系统作业
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
sem_t empty;
sem_t orange;
sem_t apple;
pthread_mutex_t mutex;
void* dad(void *arg)
{
while(1)
{
sem_wait( &empty);
pthread_mutex_lock( &mutex);
int i=rand();
if(i%2==0)
{
printf(“dad: put orangeorange:%d.apple:%d\n“orangeapple);
pthread_mutex_unlock( &mutex);
sem_post( &orange);
}else
{
printf(“dad: put appleorange:%d.apple:%d\n“orangeapple);
pthread_mutex_unlock( &mutex);
sem_post( &apple);
}
}
}
void* son(void *arg)
{
while(1)
{
sem_wait( &apple);
pthread_mutex_lock( &mutex);
printf(“son: got appleorange:%d.apple:%d\n“orangeapple);
sem_post( &empty);
- 上一篇:C语言实现局域网扫描器
- 下一篇:C++封装的一个跨平台的线程类和锁类
评论
共有 条评论