进程进入临界区的调度原则是:
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。
④如果进程不能进入自己的临界区,则应让出 CPU,避免进程出现“忙等”现象。
#include <windows.h>
#include <iostream>
#include <tchar.h>
using namespace std;
DWORD WINAPI FuncProc3(LPVOID lpParameter);
DWORD WINAPI FuncProc4(LPVOID lpParameter);
int ctickets = 100;
CRITICAL_SECTION g_csA;
void main(void)
{
InitializeCriticalSection(&g_csA);
InitializeCriticalSection(&g_csB);
HANDLE thread1;
HANDLE thread2;
thread1 = CreateThread(NULL, 0, FuncProc3, NULL, 0, NULL);
thread2 = CreateThread(NULL, 0, FuncProc4, N