Análise do código-fonte do método de construção do grupo de threads

Trabalhem juntos para criar e crescer juntos! Este é o 19º dia da minha participação no "Nuggets Daily New Plan · August Update Challenge", clique para ver os detalhes do evento

Seguindo o artigo anterior, vamos falar sobre grupos de threads

Construtor de grupo de threads

Vejamos este grupo de threads. O nome do grupo de threads é system, defina a prioridade e especifique que o thread pai está vazio. Pode-se ver que este é o grupo de threads raiz. Este método é privado e não chamado para nós.imagem.png

Adicione o thread atual ao grupo de threadsimagem.png

Vamos tentar a lógica do código acima. A propósito, se o grupo de threads não for especificado, junte-se ao grupo de threads do thread principal atualmente criado. Se o grupo de threads especificado for o grupo de threads atual.

imagem.png

Nós olhamos para o código-fonte é o mesmo:

imagem.png

O número de threads ativos e grupos de threads ativos são ambos 0:

imagem.png

Nós não iniciamos threads, então precisamos iniciar threads. Aqui vemos o número de threads ativos:

imagem.png

Por que iniciar o segmento, pode ser contado?

Vejamos o código-fonte, aqui está o grupo de threads adicionado após o início do thread:

imagem.png

Em seguida, inicie o thread mais mais, não inicie o thread menos menos.imagem.png

Pode haver um grupo de threads em um grupo de threads?

Vamos experimentar, acabamos de adicionar um grupo de subtópicos da seguinte forma:

imagem.png

Neste momento, podemos ver que também há um grupo de threads sob o grupo de threads.imagem.png

Ou seja, o grupo de threads pode ser um thread ou um grupo de threads.

Vamos dar uma olhada no grupo de threads do thread principal, o código é o seguinte:

imagem.png

O grupo de threads do thread principal ainda é main, e o grupo de threads pai do thread principal é o que chamamos de sistema Este grupo de threads raiz pode ter threads filhos e grupos de threads filhos abaixo, e assim por diante.

おすすめ

転載: juejin.im/post/7132640992401833991