[자바 프로그래밍]멀티스레드 (Multi Thread)
- 최초 등록일
- 2006.05.19
- 최종 저작일
- 2006.04
- 15페이지/ 한컴오피스
- 가격 1,000원
소개글
자바에서의 멀티스레드 즉 다중상속에 관하여 정리해 놓은 레포트로서 프로세스, 스레드에 관련된 개념을 정리하고 스레드와 멀티스레드에 관해 자세히 설명해 두었으며 멀티스레드와 관련된 예제의 소스와 그에 대한 해석 및 결과 내용을 포함하였습니다.
※ 어울리는 표지를 찾으신다면 제 마이박스 표지 폴더(http://mybox.happycampus.com/tree0202/boxfolder/7440)를 확인하세요
목차
프로세스와 스레드의 생성 및 종료
프로세스 생성 및 종료
상호작용 명령어의 실행
스레드(Thread)
스레드
Thread 클래스를 상속하는 스레드의 생성 및 시작
Runnable 인터페이스를 구현하는 스레드의 생성 및 시작
스레드의 종료 및 대기
스레드의 상태
스레드의 우선순위와 자바 스케줄링
스레드 그룹(ThreadGroup)
데몬 스레드와 데몬 스레드 그룹
멀티스레딩(Multi-Threading)
멀티스레드 프로그래밍
생성자/요청자 문제(Generator/Requester Problem)
스레드의 동기화
모니터
효율적인 동기화 기법 – wait 및 notify 메소드
멀티스레드 예제 소스/해석/결과
본문내용
자바에서는 여러 개의 스레드를 작성하여 사용하는 멀티스레드 프로그래밍을 제공해 주고 있습니다. 이러한 여러 개의 스레드는 하나의 자원을 공유하기도 합니다. 예를 들어 하나의 파일을 공유하면서 한 스레드는 그 파일에 자신이 생성한 데이터를 쓰고 이와 동시에 다른 스레드는 거기에 있는 데이터를 읽는다고 가정합니다. 한 스레드가 쓰기도 전에 다른 스레드가 읽는다거나 한 스레드가 다음 데이터를 쓰기 전에 다른 스레드가 읽는다면 이는 원하는 데이터가 아닙니다. 우리는 한 스레드가 방금 쓴 그 데이터를 읽길 원하는 것이고 또한 항상 새로운 데이터를 읽기를 원하는 것입니다. 또한 이렇게 여러 개의 스레드가 하나의 자원을 공유하는 멀티스레드 프로그램을 작성할 경우 다음과 같은 경우를 고려해 주어야 합니다.
- 공정(fairness) : 여러 개의 스레드가 하나의 컴퓨팅 자원을 사용하기 위해 동시에 접근하는 프로그램을 작성할 경우 모든 스레드가 공정하게 그 자원을 사용할 수 있도록 해 주어야 합니다. 이러한 시스템을 공정하다고 말할 수 있고 그렇지 못할 경우 기아(starvation) 또는 교착상태(deadlock)를 야기할 수 있습니다.
- 기아(starvation) : 기아란 하나 또는 그 이상의 스레드가 원하는 자원을 얻기 위해 블록 되는데 그 자원을 얻을 수 없으므로 다른 작업을 못하는 상태를 말합니다. 다시 말해서 하나의 시스템 자원을 얻지 못하고 계속 블록 되어 있는 상태를 말하는 것입니다.
- 교착상태(deadlock) : 교착상태란 기아의 근본적인 문제인데 이는 두 개 이상의 스레드가 만족하지 못하는 상태로 계속 기다릴 때 발생할 수 있습니다. 다시 말해서 교착상태는 두 개 이상의 스레드가 서로에게 어떤 일을 해 주기를 기다리는 상태를 말하는데 서로가 서로에게 어떤 일을 하기를 기다리기 때문에 한 스레드가 먼저 포기하지 않는 이상 영원히 기다릴 수밖에 없는 것입니다.
참고 자료
없음