[Programação simultânea] O método de comunicação entre processos, o método de comunicação entre processos de threads

Quando estava fazendo anotações, esqueci onde vi, vou estudar quando tiver tempo.

texto

Pipe (pipe): Pipe é um método de comunicação half-duplex. Os dados só podem fluir em uma direção e só podem ser usados ​​entre processos relacionados. O parentesco do processo geralmente se refere ao relacionamento do processo pai-filho.
Pipe nomeado (pipe nomeado): Um pipe nomeado também é um método de comunicação half-duplex, mas permite a comunicação entre processos não relacionados.
Semáforo (semóforo): Um semáforo é um contador que pode ser usado para controlar o acesso a recursos compartilhados por vários processos. Geralmente é usado como um mecanismo de bloqueio para evitar que outros processos acessem recursos compartilhados quando um processo está acessando o recurso. Portanto, ele é usado principalmente como um meio de sincronização entre processos e entre diferentes threads no mesmo processo.
Fila de mensagens (fila de mensagens): A fila de mensagens é uma lista vinculada de mensagens, armazenada no kernel e identificada pelo identificador da fila de mensagens. A fila de mensagens supera as deficiências de menos informações de transmissão de sinal, o pipeline só pode transportar fluxos de bytes não formatados e o tamanho do buffer limitado.
Sinal (sinal): o sinal é um método de comunicação mais complexo usado para notificar o processo de recebimento de que ocorreu um evento.
Memória compartilhada (memória compartilhada): A memória compartilhada é para mapear uma seção da memória que pode ser acessada por outros processos.Esta memória compartilhada é criada por um processo, mas pode ser acessada por vários processos. A memória compartilhada é o método IPC mais rápido, é especialmente projetada para a baixa eficiência de outros métodos de comunicação entre processos. Muitas vezes, é usado em conjunto com outros mecanismos de comunicação, como o sinal dois, para obter a sincronização e a comunicação entre os processos.
Socket (socket): Socket também é um mecanismo de comunicação entre processos, diferente de outros mecanismos de comunicação, pode ser usado para comunicação entre diferentes processos.

Fio

Mecanismo de bloqueio: incluindo bloqueios de exclusão mútua, variáveis ​​de condição e bloqueios de leitura e gravação. Os
bloqueios de mutex fornecem um método exclusivo para evitar a modificação simultânea de estruturas de dados.
O bloqueio de leitura e gravação permite que vários threads leiam dados compartilhados ao mesmo tempo, e as operações de gravação são mutuamente exclusivas.
Variáveis ​​de condição podem bloquear o processo atomicamente até que uma determinada condição seja verdadeira. As condições são testadas sob a proteção do bloqueio mutex. Variáveis ​​de condição são sempre usadas com bloqueios mutex. while + if + variável volátil
Semáforo: Incluindo semáforo de thread sem nome e semáforo de thread nomeado
Mecanismo de sinal (sinal): semelhante ao processamento de sinal entre processos

Discussão Java

sincronizado
esperar / notificar
condição de bloqueio
semáforo
contagem regressiva e bloqueio
cíclico de barreira

O propósito da comunicação entre threads é principalmente para sincronização de threads, portanto, as threads não têm um mecanismo de comunicação para troca de dados como na comunicação de processo.

Acho que você gosta

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