/*控制进程并发,实现高效正确的并发誊抄过程*/
#include "stdio.h"
#include "conio.h"
#include "windows.h"
#include <iostream>
using namespace std;
HANDLE Mutex;
HANDLE buf1_e;
HANDLE buf1_f;
HANDLE buf2_e;
HANDLE buf2_f;
typedef struct _THREADDATA
{
FILE *infile;
char *buf1;
char *buf2;
}*LPTHREADDATA, THREADDATA;
DWORD WINAPI get(LPVOID lParam)
{
LPTHREADDATA pData = (LPTHREADDATA)lParam;
for (;*pData->buf1!=EOF;)
{
WaitForSingleObject(buf1_e,INFINITE);//p
*pData->buf1=fgetc(pData->infile);
ReleaseSemaphore(buf1_f,1,NULL);//v
}
return 0;
}
DWORD WINAPI copy(LPVOID lParam)
{
LPTHREADDATA pData = (LPTHREADDATA)lParam;
for (;*pData->buf1!=EOF;)
{
WaitForSingleObject(buf1_f,INFINITE);//p(buf1_f)
WaitForSingleObject(buf2_e,INFINITE);//p(buf2_e)
*pData->buf2=*pData->buf1;
ReleaseSemaphore(buf1_e,1,NULL);//v(buf1_e)
ReleaseSemaphore(buf2_f,1,NULL);//v(buf2_f)
}
ret
操作系统——控制进程并发,高效并发正确誊抄
最新推荐文章于 2021-04-28 16:31:43 发布
/*控制进程并发,实现高效正确的并发誊抄过程*/#include "stdio.h"#include "conio.h"#include "windows.h"#include <iostream>using namespace std;HANDLE Mutex; HANDLE buf1_e;HANDLE buf1_f;HANDLE buf2_e;HANDLE ...
摘要由CSDN通过智能技术生成