流程说明:
lock,waiting数组初始化false,刚开始一起执行,只有一个进程能换到lock,key为false,可以执行,其他的等待,出了临界区,则检索下一个是否等待,如果等待,设waiting为false,可以执行,后面的一个接一个可以执行。但是当其他的进程都正在剩余区时,则把lock设为false,此时只要有一个进程开始等待,则可以获得lock为false的值,换得key为false,该进程可以开始执行。
流程说明:
lock,waiting数组初始化false,刚开始一起执行,只有一个进程能换到lock,key为false,可以执行,其他的等待,出了临界区,则检索下一个是否等待,如果等待,设waiting为false,可以执行,后面的一个接一个可以执行。但是当其他的进程都正在剩余区时,则把lock设为false,此时只要有一个进程开始等待,则可以获得lock为false的值,换得key为false,该进程可以开始执行。