读者写者之模型--同步问题
再上一篇中,介绍了生产者消费者模型[ https://blog.csdn.net/Misszhoudandan/article/details/80715426] 今天介绍读者写者模型(读多写少的场景) 写者负责再资源池中写 读者负责从资源池中读数据 同一时间内不允许多个写者进行写,但允许多个读者进行读 当写者和读者都准备占用资源池时,写者优先占用资源池(此问题描述的时写者优先级高的场景) 一个交易场所(资源池),此处用一个变量供读者和写者进行读写 两种角色,一组读者线程和一组写者线程 三种关系: .读者和写者之间为互斥关系,写者优先级高 .读者和读者之间为共享关系(没有互斥关系) .写者和写者之间为互斥关系 这里采用POXI线程库中的读写锁来实现 #include <stdio.h> #include <pthread.h> #include <unistd.h> //读者写者模型(读的频率高,写的频率低) //读者和读者之间关系为 共享 //写者和写者之间关系为 互斥 //读者和写者之间关系为 同步互斥关系 //读写锁 //读者加读锁(读者之间共享) //写者加写锁(写者之间互斥) //写者优先获取锁(写者优先级高) pthread_rwlock_t rw_lock ; //定义一个读写锁 //*******实现一个交易场所******************** int