티스토리 뷰
쓰레드
하나의 프로그램 안에서 둘 이상의 프로세스(또는 둘 이상의 프로그램흐름)을 만들기 위한것
문맥교환
-프로세스의 상태정보를 저장하고 복원하는 과정
-결과적으로 이 과정에 소요되는 시간을 줄이는 것
*프로세스란? '현재 실행중인 프로그램'을 의미
예) 둘 이상의 서로 다른 프로그램을 실행한다면 프로세스가 둘 이상 생성
- 웹 브라우저 실행해 웹 서핑을 하면서 뮤직플레이어를 실행해 음악을 듣는 경우 두 개의 프로세서 실행
하나의 프로그램이 둘 이상의 작업을 동시에 처리하기 위해서도 둘 이상의 프로세스가 필요
예1) 서버에서 다수의 유저가 접속해 동일한 프로그램을 사용하는 경우
예2) 멀티 유저 게임의 경우, 다수의 유저가 동시에 하나의 게임을 하는 경우
- 서버 입장에서는 한 개의 프로그램을 실행 하지만 각 유저당 개개의 프로세스를 실행하여 현재 자신의 상태와 다른 유저들의 실행 상태를 각 유저들에게 전달해야 함.
다수의 프로세스를 처리 하기 위해서는 문맥교환(context-switching)이 필요하다.
프로세스의 상태
프로세스는 준비상태에서 cpu의 스케줄링 기법에 의해서 할당시간을 받게 된다 이를 dispatch라고 한다. 실행상태 - 실행상태 교환관계를 문맥교환이라고 하며 문맥교환을 할 때에 프로세스의 상태정보를 저장해야 합니다. 처리 할 프로세스가 많아지게 되면 문맥교환 횟수가 증가하면 저장해야 될 프로세스의 상태정보도 많아지게 되므로 시스템 성능은 저하 됩니다.
* 처리할 프로세스의 수가 많아 질수록 문맥교환(context-switching)을 하는 횟수가 증가에 따른 시스템 성능 저하를 막기 위한 방법 => "Thread(쓰레드)"
문맥교환은 프로세스의 상태정보를 저장하고 복원하는 과정입니다.
결과적으로 이 과정에 소요되는 시간을 줄이는 것이 쓰레드의 목적입니다.
(저장-복원하는 정보의 개수를 감소시키는 방법)
"쓰레드는 하나의 프로그램 안에서 둘 이상 프로세스(또는 둘 이상의 프로그램 흐름)을 만들기 위한 것"
쓰레드는 프로세스와 달리 공유하는 상태 정보값들이 있습니다.
이는 쓰레드가 문맥교환이 빠른 요인 입니다. 한마디로 상태정보를 주고 받는 문맥교환의 과정이 줄어 시스템 성능이 향상됩니다.
'Programming > Computer Science' 카테고리의 다른 글
시스템프로그래밍 - 쓰레드의 문제점과 동기화 (0) | 2017.11.27 |
---|---|
시스템프로그래밍 - 쓰레드의 생성과 소멸 (0) | 2017.11.27 |
시스템프로그래밍 - 쓰레드의 이용 (0) | 2017.11.27 |
- Total
- Today
- Yesterday
- apllication context
- apache2.x
- 쓰레드 사용 이유
- 쓰레드의 이용
- 쓰레드
- 패턴
- tomcat8.x
- 빈
- 스프링
- map loop
- 연동
- BEAN
- apache tomcat 연동
- Page
- java map loop
- 어플리에키션 컨텍스트
- parretn
- 빈팩토리
- 메소드
- IoC컨테이너
- map for문
- 디자인패턴
- map foreach
- application
- tomcat8.5
- 설정정보
- 프로세스의 특징
- 프로세스
- 프로세스의 문제점
- map iterator
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |