Como posso determinar se tenho um processo com dois threads ou dois processos?

1

Noto que o chrome (agora famoso) cria cargas de instâncias no gerenciador de tarefas. São muitos tópicos e um processo? Ou é vários processos. ou seja, o gerenciador de tarefas está mostrando os processos ou está mostrando processos?

Suponha que eu vá para o orb / start e eu inicie o cmd, então eu vou lá novamente e lanço outro cmd. São dois processos separados, em vez de um processo com dois segmentos?

Agora, suponha que eu lance um cmd e, a partir daí, inicie outro cmd. Esse é um processo de dois segmentos? Ou são dois processos?

    
por barlop 25.04.2016 / 05:15

1 resposta

3

O Windows "Task Manager" apenas mostra os processos. (Caso contrário, você veria muito de duplicatas para tudo, já que quase todos os aplicativos do Windows são multiencadeados, incluindo o Chrome.) Para ver os encadeamentos de um processo, use Process Explorer ou Process Hacker ; ambos têm uma guia "Threads" na caixa de diálogo de propriedades do processo.

QuandovocêexecutaalgoviaExecutar...ouPromptdeComando,sempreéiniciadocomoumnovoprocesso.Nãofazsentidoquesejaumnovothreademumprocessoexistente,jáqueosthreadscompartilhammemóriaeoutrosrecursos,portanto,umnovothreadcriado"do nada" simplesmente não saberia o que fazer com o que obteve; ele iria atropelar todo o aplicativo em execução.

  • Dito isso, quando o novo processo começar, ele poderá entrar em contato com uma instância existente. Isso é o que o Chrome e o Firefox fazem - eles simplesmente enviam uma mensagem IPC "ei, o usuário quer uma nova janela" para o processo "mestre" do Firefox, e saem imediatamente depois.

  • Quanto a essa nova janela, geralmente não consegue um novo segmento sozinho - na maioria das vezes, se um único processo decide abrir várias janelas, todas elas são executadas no mesmo "thread de interface do usuário", pois somente o segmento principal recebe mensagens da janela . Em vez disso, encadeamentos adicionais são usados para tarefas de segundo plano e / ou de longa execução.

Como uma nota lateral, a htop ferramenta htop faz mostrar todos os tópicos por padrão (já que os encadeamentos do Linux não são diferentes dos processos) e isso confunde as pessoas todas as vezes. Se você usar o htop, certifique-se de selecionar "Mostrar nomes de encadeamento personalizados" (como na captura de tela vinculada) ou "Ocultar encadeamentos do diretório do usuário" (para obter uma lista somente de processos tradicional).

Por exemplo, aqui está uma pequena parte da árvore de processos do Linux Chromium, incluindo os subprocessos e seus encadeamentos (o processo principal não coube na captura de tela):

(Observeque,apesardesuacoloraçãoverde,ostópicosmostradosemhtopnãosão tópicos verdes .)

    
por 25.04.2016 / 07:08