Preste atención a la séptima línea en los dos conjuntos de códigos. En comparación con el algoritmo de detección de interbloqueo, las condiciones son más débiles y solo Solicitud [i] <Solicitud de trabajo [i] <TrabajoR e q u e s t [ i ]<W o r k recupera el procesoP i P_iPAGSyoRecursos. El algoritmo del banquero determina que N eed [i] <W ork Need [i] <WorkN e e d [ i ]<W o r k sólo se recuperó recursos.
El propósito del algoritmo banquero es evitar los puntos muertos, es decir, durante todo el proceso de operación y programación de este grupo de procesos, no puede haber puntos muertos, por lo que es necesario juzgar si el proceso puede ejecutarse de forma completa, es decir, para obtener todos los recursos que necesita. .
El algoritmo de detección de interbloqueo solo detecta si hay un interbloqueo en ese momento, si Solicitud [i] <Solicitud de trabajo [i] <TrabajoR e q u e s t [ i ]<Si W o r k es verdadero, significa que el procesoP i P_iPAGSyoEn este momento, no está involucrado en el punto muerto, por lo que asumimos con optimismo que el proceso P i P_iPAGSyoNo solicitará más recursos en el futuro (en muchos escenarios de aplicación, existen supuestos tan optimistas), por lo que los recursos que contiene se recuperan directamente durante la prueba. Por supuesto, si esta suposición optimista es incorrecta y se produce un interbloqueo en la ejecución posterior, se detectará durante la ejecución del algoritmo de detección de interbloqueo posterior.