la comunicación entre hilos y Comunicación de Procesos

Procesos y subprocesos diferencia:

Para el proceso, el proceso hijo es una copia del proceso padre, obtener una copia del proceso padre del proceso padre en el que el espacio de datos, montón y pila.

El hilo de rosca, con respecto al proceso, es un concepto más cerca del cuerpo de aplicación, y entre otros hilos puede compartir datos directamente con el proceso, pero también tiene su propio espacio de pila, una secuencia independiente.

Cosa en común: pueden mejorar los procedimientos de concurrencia, mejorar la eficiencia del proceso y tiempo de respuesta. Hilos y procesos tienen ventajas y desventajas en el uso. ejecución del hilo sobrecarga es relativamente pequeña, pero no es propicio para el manejo y conservación de los recursos, sino más bien el proceso. Al mismo tiempo, el hilo se ejecute en máquinas SMP, y el proceso puede migrar a través de máquinas.

La diferencia fundamental entre ellos es que los múltiples procesos en cada proceso tiene su propio espacio de direcciones, el hilo es un espacio de direcciones compartido. Todas las demás diferencias se generan a causa de esta diferencia. Por ejemplo: 
1. Velocidad. hilo de velocidad producida rápido, una comunicación rápida, el cambio rápido, porque están en el mismo espacio de direcciones. 
2. Pase la mejor utilización de los recursos. 
3. Al utilizar variables públicas o hilos de memoria requerida mecanismo de sincronización, pero no el proceso.

Y todavía son las diferencias en la comunicación se debe a esta causas fundamentales. 


La diferencia entre el sistema de comunicación

Debido a que la raíz del problema, de hecho, sólo las necesidades de comunicación entre procesos, el mismo espacio de direcciones del proceso hilos de acción, no hay necesidad de comunicar, sino para hacer la sincronización de exclusión / mutua para proteger a las variables globales compartidas.

Y si se trata de señales de comunicación entre procesos, tubería o tuberías de memoria compartida están garantizados por el sistema operativo, llamada al sistema. 


Una comunicación entre el proceso de

1. El conducto (tubo): 
el tubo es el modo de comunicación semidúplex, los flujos de datos de una sola manera, pero sólo se puede utilizar en un proceso que tiene una relación genética entre. proceso de parentesco por lo general se refiere al proceso de la relación padre-hijo.

2. tubería con nombre (NamedPipe): 
tubería con nombre es la comunicación semidúplex, pero no permite la comunicación entre el proceso de parentesco.

3. Señal (sinal): 
la señal es un medio más sofisticados de comunicación, se ha producido un evento para notificar al proceso de recepción.

4. semáforo (semophore): 
semáforo es un contador, una pluralidad de procesos se puede utilizar para controlar el acceso a recursos compartidos. A menudo se utiliza como un mecanismo de bloqueo para impedir el acceso a los recursos compartidos es un proceso, otros procesos también pueden acceder al recurso. Por lo tanto, el principal, así como medios de sincronización entre procesos entre los diferentes hilos dentro del mismo proceso.

La cola de mensajes (MessageQueue): 
cola de mensajes es una lista enlazada de mensajes, por cola de mensajes almacenado identificador en kernel. Mensaje de señalización de cola de superar la menos información, sólo el flujo de bytes llanura tubo portador tampón tamaño está limitado, y otras deficiencias.

6. La memoria compartida (memoria compartida): 
La memoria compartida es memoria mapeada un período que se puede acceder por otros procedimientos, esta memoria compartida creado por un proceso, pero se puede acceder por múltiples procesos. IPC memoria compartida es la manera más rápida, que es para la otra comunicación entre procesos corriendo baja eficiencia diseñado específicamente. A menudo se asocia con otros mecanismos de comunicación tales como semáforos, utilizados conjuntamente para lograr la sincronización y la comunicación entre procesos.

7. El zócalo (socket): 
socket es un mecanismo de comunicación entre procesos, con varios otros mecanismo de comunicación es que puede ser utilizado para la comunicación entre procesos entre diferentes dispositivos y. 


En segundo lugar, la comunicación entre los hilos

1. El mecanismo de bloqueo: un mutex, una variable de condición, lectura-escritura cerraduras 


1. Se proporciona el mutex un método se impide exclusivamente de ser estructura de datos simultáneamente modificada.

2. El bloqueo de lectura-escritura permite que múltiples hilos a los datos compartidos leen simultáneamente, y las operaciones de escritura son mutuamente excluyentes.

3. Las variables de condición puede bloquear el proceso atómicamente, hasta una cierta condición es verdadera hasta ahora. Condiciones de la prueba se lleva a cabo bajo la protección de un mutex. Siempre use variables de condición, junto con un mutex.

2. El mecanismo de señal (semáforo): incluye roscas semáforos sin nombre y semáforo nombrado hilo 

3. mecanismo de señalización (señal): procesamiento de señales entre proceso similar se utiliza para notificar el hilo de recepción se ha producido un evento.

 

El propósito principal de la comunicación entre los hilos para la sincronización de hilo, mecanismo de comunicación de modo que el hilo no le gusta el proceso de comunicación para el intercambio de datos.

Publicados 407 artículos originales · ganado elogios 150 · vistas 380 000 +

Supongo que te gusta

Origin blog.csdn.net/ds1130071727/article/details/102802620
Recomendado
Clasificación