달력

1

« 2025/1 »

  • 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
  • 31
2011. 11. 3. 15:40

java thread 내생각 JAVA이야기2011. 11. 3. 15:40

java thread 의 interrupted
자바의 interrupt를 스레드에게 보내는 신호로 해석하면 쉽다. OS랑 약간다름.
OS는 interrupt 걸리면, 해당 프로세스를 종료하고, interrupt 핸들러를 수행하고 다시 돌아온다.

2가지로 나뉜다.
1.실행될 때
 - 실행될 때 인터럽트 신호가 걸리면 이를 무시한다.
 - 이를 확인하려면? isInterrupted()메소드를 사용한다.

2. 대기큐에 있을 때
 - 대기큐에 있을 때 인터럽트 신호가 걸리면 실행큐로 들어간다.
 - 실행이 될 땐, InterruptException catch 블록으로 들어가 수행하게 된다.
    이 때, isInterrupted의 상태는 false이다. 왜냐하면 이미 신호가 지나가고 난 후에 메소드를 호출했기 때문이다.

main(){
thread.join();
}
main 스레드는 thread와 같은 생명 주기를 가진다. 따라서 thread가 종료될 때까지 기다린다.

yield()
 자기를 대기상태로 전이 시킨다. 만약 실행될 프로세스가 없으면 자신을 실행시킨다.

'JAVA이야기' 카테고리의 다른 글

동기화 Collection클래스  (0) 2011.11.07
Java Pattern Group 사용하기  (0) 2011.11.05
넌블로킹 알고리즘  (0) 2011.09.27
단일 연산 변수 클래스  (0) 2011.09.27
AbstractQueuedSynchronizer  (0) 2011.09.26
:
Posted by НooпeУ


Code Start Code End