시다바리
[Java] Multi-Thread 본문
I. Multi thread의 개요
가. Multi thread의 개념
- 여러 개의 Thread를 사용하여 하나의 수행업무를 동시에 처리하는 프로세스 제어기법
정의 좋습니다. But 6하원칙으로 볼때 좀 빠진게 있습니다..
나.. Multi thread의 개념도
다. Multi thread의 특징 <-- 좋습니다..
- 예측불가 : 각 Thread는 독립적이며, 실행/종료순서는 예측불가
- 동기화 : 한 프로세스내의 다른 Thread들과 Sync
- 우선순위 : Thread는 자신의 stack, PC, 레지스터등의 다양한 우선순위 가짐
- 자원공유 : Thread는 Process의 일부로서 데이터공유가 용이하고 Local자원임
- 성능 : 한 프로세스가 Sequencial하게 수행되는 것보다 월등한 처리성능가짐
II. Multi thread의 문제점 및 해결기법
가. Multi thread의 문제점
과제 |
내용 |
프로그램 복잡성 |
-Thread의 동기화등으로 프로그램 복잡해짐 |
경쟁상태 돌입 |
-동기화가 불확실 할 경우 Race Condition발생 |
우선순위 역전 |
- 우선 순위가 높은 Thread가 실행정지 또는 후순위 |
사용자 예측불능 |
실행순서등을 예측할수 없음 |
나. Multi thread의 문제점의 해결기법(동기화)
- 주로 Multi thread수행시 둘이상의 thread가 공유 자원 접근함으로써 발생되는 문제해결을 위해 공유자원의 접근제어 필요
해결기법 |
내용 |
임계영역 (Critical Section) |
사용자객체로부터 공유자원에 대해 하나의 thread만 접근허용 |
세마포어 (Semaphore) |
P연산(자원점유상태), V연산(자원해제상태)으로 이루어지며, 자원의 점유와 해제를 통제 |
상호배제 (Mutex) Mutual Exclusive |
시스템의 어떠한 자원(임계영역)을 한 시점에서 한 개의 프로세스 만이 사용할 수 있도록 제어 |
가. 운영자측면
- Multi thread의 사용전에 효율적인 Process 운영방안 수립이 필수
- 원하는 수준의 Multi thread를 지원하는 O/S 탑제 제품의 선택중요
나. 프로그래머 측면
- Thread간 자원사용으로 Deadlock발생하지 않도록 설계 및 프로그래밍 필요
I. Multi thread의 개요
가. Multi thread의 개념
2. Multi thread의 구현원리
가. 구현원리도
나. 구현 절차
3. Multi thread의 문제점 및 해결기법
가. Multi thread의 문제점
나. Multi thread의 문제점의 해결기법(동기화)
출처 : http://sikaru83.tistory.com/8?srchid=BR1http%3A%2F%2Fsikaru83.tistory.com%2F8