윈 도 우 쓰레드와 핸들
2022.08.13 18:19
작업관리자의 CPU에서 보이는 프로세스가 144라는건 메모리에 상주된 파일 갯수라는 것은 알겠는데
스레드와 핸들 수치는 구체적으로 무엇을 의미하는 건가요?
(현재 동영상 인코딩 중이라 CPU이용율 100%로 나오는 것입니다.)
댓글 [3]
-
내꼬 2022.08.13 20:52 -
메리아 2022.08.14 10:42
프로그래머가 아니라면 별로 신경쓸게 아닙니다.
딱히 제어할 수 있는 것도 아니구요.
1. 프로세스 : exe 파일등을 1개 실행시켰을때 +1. 다만 그 exe가 멀티프로세스나 다른 프로그램을 추가로 실행하기도 함.
작업관리자의 세부정보 탭에 나오는 목록 갯수와 같음.
2. 스레드 : 각 프로세스에서 동시에 처리하기 위해 나눈 처리단위.
예를들면 어떤 구형이나 초보가 만든 프로그램의 경우에는
오래걸리는 작업을 실행시킬경우 프로그램이 어디 클릭도 안되고 프리징이 걸림.
이는 단 1개의 스레드만으로 화면표시와 내부실행을 감당하기 때문임.
그런데 스레드를 여러개로 나눠서 화면표시의 UI 스레드로, 내부 작업실행용 스레드를 나누면 화면 프리징 없이 "동시성"을 충족하면서 돌아가게 됨.
이렇게 주로 사용자 경험이나 CPU의 성능을 최대한 발휘해서 처리하기 위한 방식이 스레드의 시분할방식 처리.
다만, 내부적으로 동시에 하는것처럼 보이기 위해서 조금씩 각 쓰레드에 자원을 할당하면서 돌아가면서 돌리기 때문에
쓰레드를 잘못 사용했을경우 싱글쓰레드보다 전체 처리시간이 훨씬 느려질수도 있는 단점이 있으므로 무작정 쓰레드로 분할해서는 안됨.
프로세스도 그렇지만 저 쓰레드가 많을수록 당연히 CPU 처리는 늦어질 수 있음.
그런데 애초에 이건 사용자가 뭘 할게 아니라서 그냥 그렇구나 하는게 다임. 개발자의 문제임.(물론 사용자측에서는 최대한 불필요한 작업수행을 안하면 CPU 가용자원이 많아지는거)
3. 핸들 : 윈도우는 기본적으로 메시지 처리방식임. 내부적으로 특정규칙의 메시지를 주고 받으면서 작업을 처리함.
그런데 그 메시지를 어디로 보내야하는지가 문제인데, 그 "주소"에 해당하는게 핸들임.
각 핸들은 넘버링이 되어있고, 바탕화면, 작업표시줄, 기타 여러 시스템프로세스 등을 비롯해서, 사용자 시야에서는 윈도우 메인창부터 시작해서 내부의 모든 객체 요소까지,
caption button 체크박스 등등 하나하나에 전부 핸들이 할당됨.(사실 분류가 또 좀 따로 있지만, 기본적으로 모두가 핸들임.)
본문의 작업관리자에서 카운트하는 것도 구분없이 다 카운트하는거. 윈도우 화면의 버튼 하나하나가 다 핸들을 가집니다.
그래서 그 핸들로 특정한 메시지를 보내거나 사용자 입력이 발생한걸 확인해서 다음 작업을 하게 되는거임.
이거도 딱히 제어할 수 있는 부분은 아니지만 나름 중요한게, 원래 사용이 끝나면 저걸 반환해야하는데 반환 못하고 점유하는 경우가 있음.
윈도우를 끄지 않고 오래 사용할수록 핸들이나 반환못한 자원 그런게 쌓임.
주로 중요한 문제가 흔히 "메모리 누수"라고 부분. 반환되지 않은 핸들이 많을수록 메모리 누수가 많이 발생하므로
재부팅 시켜서 처음부터 시작해야할 이유가 됨.
하지만 역시 기본적으로 제어할만한 부분은 아니므로, 유저입장에서 할수 있는 거라고는 되도록 오래 쓰지말고 재부팅을 자주하는게 좋음.
(최대절전모드 같이 재부팅 없이 계속 쓰는걸 불필요하게 반복하지 말라는거)
참고로 핸들은 버튼같은거나 체크박스같은거 포함된다고 했지만, 기본적으로 우리가 웹페이지에서 보는 체크박스와 버튼과는 다름. 웹페이지 화면은 그냥 통으로 한개의 핸들임.
일반 윈도우 폼에서 체크박스나 버튼이 핸들을 가지는거.
그래서 매크로를 작성할 경우 윈도우 폼에서는 위치를 찾기 쉽지만, 웹페이지는 외부에서 손대기가 쉽지않음. 웹은 핸들없이 자체 렌더링이기 때문.
참고로 게임화면 또한 마찬가지입니다. 그냥 딱 흔히 우리가 보는 "기본 윈도우 창" 같은거만 내부적으로 핸들을 가집니다.
그외에도 안보이는 프로세스나 실행부분들도 모두 가지구요.
쓰잘데기 없는(?) 정보를 많이 쓰긴 했습니다만
일반유저로서는 그냥
"불필요하게 절전모드 쓰지말고 재부팅해라",
"쓸데없이 이것저것 실행시켜놓지 마라",
"실행하고 쓸데없는 작업 시켜놓지 말라"는 정도의
일반론적인 주의점 말고는 신경쓸게 없습니다.
심지어 이것마저도 컴퓨터 성능이 좋아진 요즘 시대에는 별로 주의할게 아니라 자기 꼴리는대로(?) 쓰면 됩니다.
절전모드로 한달을 써도 별로 상관없는 사람도 있고, 실행할건 다 실행해야 맞는셈이기도 하죠.
TMI에 가까운거라 이런게 있구나 하고 대충 넘어가도 상관없습니다.
-
billy 2022.08.14 13:27
방대한 댓글 감사합니다. 프로그래머가 아닌 저로서는 난해하나 이런거였구나 정도 이해되지만 도움 많이 되었습니다.
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
94461 | 기 타| 문의드립니다 [2] | 화랑이 | 287 | 08-24 |
94460 | 하드웨어| 하드 디스크의 파티션이 날아갔네요 [2] | brucex | 540 | 08-24 |
94459 | 소프트웨어| after burner Riva tuner 같은 프로그램 있을까요? [5] | 우주여행가 | 235 | 08-24 |
94458 | 윈 도 우| 세르게이 pe 사이트 [2] | 포러브 | 723 | 08-23 |
94457 | 윈 도 우| 이벤트 ID 10016 [2] | 한스 | 385 | 08-23 |
94456 | 윈 도 우| radialix 3 정규식 패턴 | 슈머슈마 | 151 | 08-23 |
94455 | 윈 도 우| 윈도우7 사용하는 컴에 윈도우10을 설치해도 되나요? [5] | brucex | 683 | 08-23 |
94454 | 윈 도 우| 윈도우11 업데이트 후 장치 및 프린터 열리지 않습니다.. [4] | 신입사원 | 767 | 08-23 |
94453 | 하드웨어| Windows7 설치 가능한 메인보드 [9] | sinabro | 629 | 08-23 |
94452 | 소프트웨어| [질문] 요즘 스포티파이 어떻게 쓰고 있나요? [2] | 마루나래 | 286 | 08-23 |
94451 | 기 타| 음악cd는 iso로 이미지 만들수 없나요? [31] | 분뇨의역류 | 1149 | 08-22 |
94450 | 윈 도 우| 이동중 종료상태와 슬립상태 차이.... [2] | 현민지 | 278 | 08-22 |
94449 | 모 바 일| LG폰에는 삼성페이가 설치되지 않나요? [4] | brucex | 1107 | 08-22 |
94448 | 윈 도 우| 벤토이에 넣어 설치하면 설치가 안됩니다 이유가 궁금합니다 | 프리티맨 | 426 | 08-22 |
94447 | 윈 도 우| PIN 로그인시 에러 [8] | 일신우일신 | 444 | 08-22 |
94446 | 하드웨어| 기가비트 되는지 확인 가능한 테스터기 있을까요? [8] | ksire | 694 | 08-22 |
94445 | 하드웨어| 메모리와 알루미늄호일 [7] | billy | 836 | 08-22 |
94444 | 모 바 일| 휴대폰의 문자 등을 네트워크 없이 토크로 sd카드에 백업 ... [2] | brucex | 399 | 08-22 |
94443 | 소프트웨어| 복원시 문의합니다 [1] | 화랑이 | 295 | 08-22 |
94442 | 윈 도 우| [질문] 윈10/11 내부 시스템 까지 다크모드 적용 가능한가요? [4] | 마루나래 | 490 | 08-22 |
스레드, 핸들 (tistory.com)