Red de conocimiento informático - Material del sitio web - Programación multiproceso y programación multiproceso

Programación multiproceso y programación multiproceso

La primera pregunta es que ni el proceso ni el hilo se bloquearán. Volverá inmediatamente después de la creación. No es necesario esperar a que funcione el proceso o hilo secundario.

Segunda pregunta

En primer lugar, los procesos y los hilos son diferentes.

En el caso de múltiples procesos, si el proceso padre finaliza primero, el proceso hijo será recibido por el proceso de inicio y se convertirá en un proceso hijo del proceso de inicio, y luego el proceso hijo continuará ejecutándose. hasta que termine. El proceso de inicio es responsable de obtener el estado final de estos procesos secundarios y liberar los recursos del proceso. Si el proceso hijo finaliza primero, entonces el proceso padre debe usar wait o waitpid para obtener el estado final del proceso hijo y liberar los recursos del proceso. De lo contrario, el proceso hijo se convertirá en un proceso inactivo y los recursos del proceso que ocupa no se liberarán. .

En subprocesos múltiples, si el subproceso principal o principal que mencionaste usa retorno o salida al final, o finaliza el procesamiento, entonces todo el proceso finaliza y otros subprocesos secundarios finalizan naturalmente. Si main termina con pthread_exit, solo el hilo principal finaliza y el hilo secundario sigue ejecutándose. De manera similar, si se llama a la salida cuando finaliza el subproceso secundario, todo el proceso incluye el final del subproceso principal. Si se llama a pthread_exit o finaliza normalmente, solo finaliza el subproceso secundario.

Además, si no hay un atributo de separación al final del subproceso secundario, otros subprocesos deben usar pthread_join para obtener el estado final del subproceso y liberar recursos del subproceso, al igual que esperar y esperar en el proceso. .