Red de conocimientos turísticos - Información de alquiler - Problemas de programación sobre la sincronización de subprocesos

Problemas de programación sobre la sincronización de subprocesos

En la función principal, los dos subprocesos se crean primero y comienzan a ejecutarse. En este momento, el objeto mutex aún no se ha creado, por lo que habrá algunos problemas. Además, hay un problema cuando espera que finalicen 400 milisegundos. Por ejemplo, después de que el ticket llega a 1000, es posible que los dos subprocesos no hayan completado la ejecución, es decir, el ticket no se ha reducido a 0 y la función principal. ha finalizado. Debe utilizar el mecanismo de sincronización de subprocesos para esperar a que los dos subprocesos finalicen. Se pueden utilizar eventos para lograr esto, pero hay una forma más sencilla. No es necesario modificar el hilo de trabajo. La función principal se puede modificar de la siguiente manera:

int main()

<. p>{

//Matriz de identificadores de subprocesos

HANDLE hThread[2];

//Crea un objeto mutex primero

hMutex = CreateMutex(NULL,FALSE,NULL );

hThread[0] = CreateThread(NULL,0,ThreadProc,NULL,0,NULL);

hThread[1] = CreateThread (NULL,0,Thread2Proc,NULL ,0,NULL);

//Espera a que se completen los dos subprocesos antes de salir

WaitForMultipleObjects(2, hThread, TRUE, INFINITE);

devuelve 0 ;

}