자바 스레드

By | 2017-06-06
  1. 스레드(thread)
    1. 운영체제에 의해 관리되는 하나의 작업 혹은 태스크
    2. 스레드와 태스크(혹은 작업)은 바꾸어 사용해도 무관
    3. 멀티스레딩(multi-threading)
      1. 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법
  2. 스레드 만드는 2 가지 방법
    1. java.lang.Thread 클래스를 상속받아 스레드 작성
    2. java.lang.Runnable 인터페이스를 구현하여 스레드 작성
  3. 스레드 종료
    1. 스스로 종료
      1. run() 메소드 리턴
    2. 타 스레드에서 강제 종료
      1. interrupt() 메소드 사용
  4. Thread와 Runnable 사용 스레드 사용 예

     
  5. 스레드 동기화(Thread Synchronization)
    1. 다수의 스레드가 공유 데이터에 동시에 접근하는 경우
      1. 공유 데이터의 값에 예상치 못한 결과 발생 가능
    2. 스레드 동기화
      1. 스레드 사이의 실행순서 제어, 공유데이터에 대한 접근을 원활하게 하는 기법
    3. 멀티스레드의 공유 데이터의 동시 접근 문제 해결
      1. 방법1) 공유 데이터를 접근하는 모든 스레드의 한 줄 세우기
      2. 방법2) 한 스레드가 공유 데이터에 대한 작업을 끝낼 때까지 다른 스레드가 대기 하도록 함
    4. 자바의 스레드 동기화 방법 – 2가지
      1. synchronized 키워드로 동기화 블록 지정
      2. wait()-notify() 메소드로 스레드의 실행 순서 제어
  6. Synchronized 사용 예