//潩潩潩?潩?漃71潩?
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
HANDLE wmutex, rmutex;//wmutex潩?潩潩?潩潩漴mutex?潩潩潩?潩潩?潩?
int readers = 0;//潩潩潩
int n = 0;//?潩潩潩
DWORD WINAPI reader(HANDLE Thread)
{
do {
WaitForSingleObject(rmutex, INFINITE);
if (readers == 0)
WaitForSingleObject(wmutex, INFINITE);//潩?潩潩??潩潩wair(mutex),潩潩潩?潩?
readers++;
ReleaseMutex(rmutex);
if (n >= 10)
break;
printf("??d is reading\n", GetCurrentThreadId());
n++;//do
&nb

该博客通过C语言在Windows环境下实现了一个读者写者问题的示例。使用了两个互斥锁wmutex和rmutex来同步读者和写者的操作。在循环中,读者会检查读计数并等待写者权限,而写者则会获取写权限并更新写计数。当达到特定条件(例如写计数达到10)时,读者或写者将退出循环。在main函数中,创建了多个线程进行并发执行,并使用WaitForMultipleObjects函数等待所有线程完成。
最低0.47元/天 解锁文章
435

被折叠的 条评论
为什么被折叠?



