版权声明:本文为博主原创文章承蒙转载请注明作者和出处 /c/article/details/
2.多个读者可以同时访问文件资源
3.只允许一个写者访问文件资源。
1.设置信号量fileSrc实现读写者对临界资源的访问
2.设置计数器readCount来统计访问临界资源的读者数目,设置信号量readCountSignal完成对readCount计数器资源的互斥访问
/*初始化读者队列为0,文件资源的初始值为1*/ 1.写者线程的优先级高于读者线程
2.当有写者到来时应该阻塞读者线程的队列。
3.当有一个写者正在写时或在阻塞隊列时应当阻塞读者进程的读操作直到所有写者进程完成写操作时放开读者进程。
4.当没有写者进程时读者进程应该能够同时读取文件
1.通过添加信号量read实现写者到来时能够打断读者进程。
2.设置信号量fileSrc实现读写者对临界资源的访问
3.设置计数器writeCount来统计当前阻塞的写者进程的數目,设置信号量writeCountSignal完成对writeCount计数器资源的互斥访问
4.设置计数器readCount来统计访问临界资源的读者数目,设置信号量readCountSignal完成对readCount计数器资源的互斥访问
/*初始化读者、写者队列为0,初始化令牌资源、读写计数器资源的初始值为1*/ 2.写者、读者互斥访问
3.只能有一个写者访问临界区。
4.可以有多個读者同时访问临界资源
1.设置file信号量实现对临界资源的互斥访问。
2.设置计数器readCount实现多个读者访问临界资源通过设置信号量readCountSignal实现对readCount计数器的互斥访问。
3.设置信号量keySignal实现读者和写者的公平竞争(令牌)
4.设置信号量OneSignal实现只有读者队列或写者阻塞在keySignal(对令牌资源的访问控制)。
/* 读者队列初始值为0其他资源初始值为1*/