Java multi-threading
- Quando fomos para ler a classe java Thread, você vai encontrar esta classe e a maior parte da biblioteca API java há uma diferença clara em todos os seus principais métodos são declarados nativo .
- nativo em si refere-se a um método nativo, mas porque o modelo java segmentação usa o modelo de segmentação nativo do sistema operacional, onde a linha padrão
native
maneira refere-se à geração de Native POSIX Tópico Biblioteca . - Existem três implementações do fio: um fio de núcleo são implementadas (1: 1), implementadas implementadas usando o fio do utilizador (1: N), além da utilização de processos leves threads do usuário implementações híbridas (N: H implementada). O Java 1.3 do modelo de segmentação início amplamente utilizado modelo de segmentação nativo do sistema operacional para alcançar, ou seja, 1: 1.
- Hotpot ele não vai interferir com o agendamento de segmento, as prioridades de rosca pode ser ajustado para fornecer recomendações de agendamento OS.
- Linux sistema e os diferentes PID cada processo ou LWP está associado. Por outro lado, os tópicos de um aplicativo com vários segmentos em um só eo mesmo PID.
- Porque vários segmentos têm o mesmo PID, que introduz o conceito de um grupo de discussão , enquanto o mesmo processo que conduz a todos os tópicos de um grupo de discussão e do grupo de fio de PID, que é o grupo primeiro processo leve o PID, ele é armazenado no processo descrito na tgid símbolo campo.
- Há tópicos sobre significado real, a sua implementação é simular o processo, ele pertence aos threads de usuário, localizado biblioteca libpthread compartilhada. estrutura de dados específico na memória, é um descritor processo apontador aponta para a estrutura de dados thread_info, este é o descritor do segmento, o tamanho da área de armazenamento para a armação de duas folhas (2 * 4K).
Q & A
- Q1: Forquilha em um programa, diferente código de localização criado (), então este programa é multi-threaded?
- A: multi-processo de programa de relações de comunicação errado, garfo criar o mesmo programa () para criar um programa, pertencente ao pai e filho entre cada fork () (pai e filho podem ser permitida única maneira sua comunicação de processo filho tubulação , e FIFO está autorizado a se comunicar com os não Sons).
- Q2: Quantas sistema operacional cria um processo até, quantos segmentos para criar até um processo?
- A: o sistema operativo processa uma linha criada pela maioria tabela proc (em Linux
/proc
) relacionado com o tamanho, eproc
o tamanho da tabela depende da largura do autocarro (como barramento largura determina o número de apontadores), tal como um 4G. - Q3: Como faço para visualizar threads do kernel?
- UMA:
ps afx
Referência Bowen:
Multi-threaded Resumo programação: https://blog.csdn.net/skyroben/article/details/72793409
"em profundidade compreensão da Máquina Virtual Java: JVM recursos avançados e melhores práticas" para
"a compreensão em profundidade de Linux Kernel"