Por que o Process Explorer mostra milhares de threads?

1

Na captura de tela abaixo, você pode ver que o sistema operacional está relatando tópicos 2925 .

Nos meus próprios programas, eu configurei o número de threads por núcleo para cerca de 1: 1 e isso resulta no processamento geral mais rápido. Isso ocorre porque, depois que a alternância de contexto é iniciada, o desempenho começa a degradar.

Isso não funcionaria realmente se o número de threads sendo executados estivesse na casa dos milhares, já que o número de opções de contexto faria com que os threads extras usassem uma gota no oceano.

O sistema operacional está relatando algo diferente do que estou pensando quando estou pensando em tópicos?

    
por ton.yeung 19.07.2016 / 23:57

2 respostas

1

Um único processo pode possuir vários segmentos. O sistema operacional é responsável por agendar threads e processar.

O que você está vendo é a soma de todos os segmentos atualmente em execução no sistema. Além disso, a troca de contexto é uma operação trivial em sistemas operacionais modernos com CPUs multicore.

    
por 20.07.2016 / 00:10
1

Hefewe1zen está certo; processos podem conter muitos segmentos. Mas nem todos eles estão necessariamente trabalhando ao mesmo tempo

Muitos desses tópicos podem estar suspensos , esperando que algum tipo de evento aconteça, caso em que o escalonador de CPU não vai incomodá-los. Além disso, o agendador de CPU é inteligente o suficiente para dar a maior parte do tempo de CPU aos segmentos que realmente precisam dele. Então você não precisa se preocupar muito com todos esses tópicos minando o desempenho do seu computador.

    
por 20.07.2016 / 01:02