두 개의 스레드가있는 하나의 프로세스 또는 두 개의 프로세스가 있는지 어떻게 확인할 수 있습니까?

Barlop

크롬 (지금은 유명)이 작업 관리자에서 많은 인스턴스를 생성한다는 것을 알았습니다. 많은 스레드와 하나의 프로세스입니까? 또는 여러 프로세스입니다. 즉, 작업 관리자가 스레드를 표시합니까, 아니면 프로세스를 표시합니까?

orb / start로 이동하여 cmd를 시작한 다음 다시 거기로 가서 다른 cmd를 시작한다고 가정합니다. 두 개의 스레드가있는 하나의 프로세스가 아니라 두 개의 개별 프로세스입니까?

이제 cmd를 시작한다고 가정하고 거기에서 다른 cmd를 시작합니다. 하나의 프로세스가 두 개의 스레드입니까? 아니면 두 가지 프로세스입니까?

user1686

Windows "작업 관리자" 는 프로세스 표시합니다. (그렇지 않으면 Chrome을 포함한 거의 모든 Windows 앱이 다중 스레드이기 때문에 모든 항목에 대해 많은 중복 항목 이 표시 됩니다.) 프로세스 스레드를 보려면 Process Explorer 또는 Process Hacker를 사용하십시오 . 둘 다 프로세스 속성 대화 상자에 "스레드"탭이 있습니다.

실행 ... 또는 명령 프롬프트 를 통해 무언가를 실행 하면 항상 새 프로세스로 시작됩니다. 스레드가 메모리와 기타 리소스를 공유하기 때문에 기존 프로세스에서 새 스레드가되는 것은 말이되지 않습니다. 따라서 스레드가 "아무데도"생성 된 새 스레드는 자신이 얻은 것을 어떻게해야할지 알 수 없습니다. 실행중인 앱 전체를 짓밟습니다.

  • 즉, 새 프로세스가 시작되면 기존 인스턴스에 연결할 수 있습니다 . 이것이 바로 크롬과 파이어 폭스가하는 일입니다. "이봐, 사용자가 새 창을 원합니다"IPC 메시지를 '마스터'파이어 폭스 프로세스에 보내고 즉시 종료합니다.

  • 새 창은 일반적으로 자체적으로 새 스레드를 얻지 않습니다. 대부분의 경우 단일 프로세스가 여러 창을 열기로 결정하면 주 스레드 만 있기 때문에 모두 동일한 "UI 스레드"에서 실행됩니다. 창 메시지를 받습니다 . 대신 백그라운드 및 / 또는 장기 실행 작업에 추가 스레드가 사용됩니다.


참고로 Linux htop 도구 기본적으로 모든 스레드를 표시하며 (Linux 스레드는 프로세스와 다르지 않기 때문에) 매번 사람들을 혼란스럽게합니다. htop을 사용하는 경우 "사용자 지정 스레드 이름 표시"(링크 된 스크린 샷에서와 같이) 또는 "사용자 영역 스레드 숨기기"(기존 프로세스 전용 목록을 얻으려면)를 선택해야합니다.

예를 들어, 다음은 하위 프로세스와 스레드를 포함하는 Linux Chromium 프로세스 트리의 일부입니다 (주 프로세스는 스크린 샷에 맞지 않음).

(녹색 색상에도 불구하고 htop 표시된 실은 녹색 실 이 아닙니다 .)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관