스레드 (Thread)

Copyright (c) 2015-, All Rights Reserved by Kwanghoon Choi
(아래 자바 프로그래밍 강의 교재의 내용을 자유롭게 이용하되 다른 웹 사이트 등을 통한 배포를 금합니다.)

 

Java의 스레드에 대해 다음 주제를 설명한다.

  • Java 스레드를 정의하는 두 가지 방법
  • 스레드 객체를 만들어 실행하는 방법
  • Thread 클래스의 sleep, join, interrupt 메소드
  • Object 클래스의 (숨겨진) 자물쇠(lock) 필드
  • synchronized 키워드를 사용하여 공유 객체를 다루기
  • Object 클래스의 wait, notify 메소드

세가지 예제를 활용한다.

  • 두 개의 스레드를 만들어 카운터를 각각 동일한 횟수 만큼 증가, 감소시킨 결과가 0인지 확인 (cf. 스레드 간섭 문제)
  • 카운터의 값을 항상 0 이상으로 유지하면서 위의 과정을 수행 (cf. 생산자와 소비자 문제)
  • 두사람이 젓가락을 공유하면서 식사하는 문제 (cf. 철학자 식사 문제)

 

차례

  1. 스레드 (Thread)의 정의와 실행
  2. Java 스레드 (Thread)의 동작을 멈추게 하기
  3. Java 스레드 (Thread)의  실행이 끝날 때까지 기다리기
  4. 동기화 (synchronization)