t1이 사용하고나면
기다리고 있던 t2,t3,t4와 반환된 t1
다시 블록을 차지하기 위해 자유경쟁 한다.
키를 얻으면 run nable 된다
쓰레드 3개가
모두 같은 mc 클래스객체를 사용한다.
쓰레드 실행하고 1억초 실행함
경쟁하지만 동시에 안되고, 하나씩만 됨.
- 웨이트 메서드
- 조인 메서드 ---> 인터럽트 하면 웨이팅에서 벗어나서 런어블됨
일시정지 상태는 두개로 나뉜다.
둘다 인스턴스 메서드다.
객체 안에서만 사용할 수 있는 메서드다.
set 스레드
get 스레드
동기화: 공유 객체 있을 때만 쓴다.
- 동기화 안하는 경우: 셋하고 있지만 겟을 할수 있다. 파일이 안열림
- 동기화만 하는 경우: 겟이 먼저하는 경우-> null, 셋이 먼저하는 경우-> 값 있음 => 값이 계속 변함
싱크로나이즈가 동기화가 메소드로 적용되서
같은 this가 키워드가 된다.
이런 경우 오른쪽에서
inputData outputData를 동시에 불러도
동시에 실행 안됨
근데 왔다갔다하면서 읽지 못함
wait() 추가함
notify() 추가함
왔다갔다됨
'java > 자바' 카테고리의 다른 글
[Chap17] 컬렉션 List (ArrayList, Vector, LinkedList) (0) | 2022.11.07 |
---|---|
Ch16 제네릭 (0) | 2022.10.30 |
[Chap15] - 05 쓰레드의 상태 #1 (0) | 2022.10.24 |
[Chap15] - 04 쓰레드 동기화 (0) | 2022.10.24 |
[Chap14] - 03 예외(Exception) 클래스 사용자 정의 (0) | 2022.10.10 |