[Programación concurrente] El método de comunicación entre procesos, el método de comunicación entre procesos de subprocesos

Cuando estaba tomando notas, olvidé dónde lo vi, estudiaré cuando tenga tiempo.

texto

Tubería (tubería): La tubería es un método de comunicación semidúplex. Los datos solo pueden fluir en una dirección y solo se pueden usar entre procesos relacionados. El parentesco del proceso generalmente se refiere a la relación proceso padre-hijo.
Canalización con nombre (namedpipe): la canalización con nombre también es un método de comunicación semidúplex, pero permite la comunicación entre procesos no relacionados.
Semáforo (semóforo): un semáforo es un contador que se puede utilizar para controlar el acceso a recursos compartidos por múltiples procesos. A menudo se utiliza como mecanismo de bloqueo para evitar que otros procesos accedan a los recursos compartidos cuando un proceso accede al recurso. Por lo tanto, se utiliza principalmente como medio de sincronización entre procesos y entre diferentes subprocesos en el mismo proceso.
Cola de mensajes (messagequeue): la cola de mensajes es una lista enlazada de mensajes, almacenada en el kernel e identificada por el identificador de la cola de mensajes. La cola de mensajes supera las deficiencias de una menor cantidad de información de transmisión de señales, la canalización solo puede transportar flujos de bytes sin formato y el tamaño de búfer limitado.
Señal (sinal): la señal es un método de comunicación más complejo que se utiliza para notificar al proceso de recepción que ha ocurrido un evento.
Memoria compartida (memoria compartida): La memoria compartida consiste en mapear una sección de memoria a la que pueden acceder otros procesos. Esta memoria compartida es creada por un proceso pero puede ser accedida por varios procesos. La memoria compartida es el método IPC más rápido, está especialmente diseñado para la baja eficiencia de otros métodos de comunicación entre procesos. A menudo se utiliza junto con otros mecanismos de comunicación, como la señal dos, para lograr la sincronización y la comunicación entre procesos.
Socket (socket): Socket es también un mecanismo de comunicación entre procesos. A diferencia de otros mecanismos de comunicación, se puede utilizar para comunicarse entre diferentes procesos.

Hilo

Mecanismo de bloqueo: incluye bloqueos de exclusión mutua, variables de condición y bloqueos de lectura y escritura. Los
bloqueos mutex proporcionan un método exclusivo para evitar la modificación simultánea de estructuras de datos.
El bloqueo de lectura y escritura permite que varios subprocesos lean datos compartidos al mismo tiempo, y las operaciones de escritura se excluyen mutuamente.
Las variables de condición pueden bloquear el proceso de forma atómica hasta que se cumpla una determinada condición. Las condiciones se prueban bajo la protección del bloqueo mutex. Las variables de condición siempre se utilizan con bloqueos mutex. while + if + variable volátil
Semáforo: incluye semáforo de hilo sin nombre y semáforo de hilo con nombre
Mecanismo de señal (señal): similar al procesamiento de señal entre procesos

Hilo de Java

Sincronizado
espera / notificación
condición de bloqueo
semáforo
cuenta regresiva
cierre cíclico barrera

El propósito de la comunicación entre subprocesos es principalmente para la sincronización de subprocesos, por lo que los subprocesos no tienen un mecanismo de comunicación para el intercambio de datos como en la comunicación de proceso.

Supongo que te gusta

Origin blog.csdn.net/qq_41489540/article/details/109097284
Recomendado
Clasificación