본문 바로가기

java/자바

[Chap15] - 06 쓰레드의 상태 #2

t1 사용하고나면

기다리고 있던 t2,t3,t4 반환된 t1

다시 블록을 차지하기 위해 자유경쟁 한다.

 

키를 얻으면 run nable 된다

 

 

쓰레드 3개가

모두 같은 mc 클래스객체를 사용한다.

 

쓰레드 실행하고 1억초 실행함

경쟁하지만 동시에 안되고, 하나씩만 .

 

  1. 웨이트 메서드
  2. 조인 메서드 ---> 인터럽트 하면 웨이팅에서 벗어나서 런어블됨

일시정지 상태는 두개로 나뉜다.

둘다 인스턴스 메서드다.

객체 안에서만 사용할 있는 메서드다.

 

 

set 스레드

 

get 스레드

 

동기화: 공유 객체 있을 때만 쓴다.

  1. 동기화 안하는 경우: 셋하고 있지만 겟을 할수 있다. 파일이 안열림
  2. 동기화만 하는 경우: 겟이 먼저하는 경우-> null, 셋이 먼저하는 경우-> 있음 => 값이 계속 변함

 

싱크로나이즈가 동기화가 메소드로 적용되서

같은 this 키워드가 된다.

 

이런 경우 오른쪽에서

inputData outputData 동시에 불러도

동시에 실행 안됨

 

근데 왔다갔다하면서 읽지 못함

 

 

 

wait() 추가함

notify() 추가함

 

왔다갔다됨