[JAVA] 스레드 동기화


[JAVA] 스레드 동기화

스레드 동기화 멀티 스레드는 하나의 객체를 공유해서 작업 가능하다. 다른 스레드에 의해서 객체 내부 데이터가 변경될 수 있기에 다른 결과가 나올 수 있다. 이를 위해서 스레드 작업이 끝날 때가지 다른 스레드가 변경할 수 없도록 스레드 작업이 끝날 때까지 객체에 잠금을 걸면 된다. 다음과 같이 Lock을 걸면 Lock을 건 스레드만 접근 가능하고 다른 스레드는 접근할 수 없다. Lock을 걸지 않은 메서드는 접근 가능하다. synchronized 일반적인 set 메서드를 가지는 Total Class를 만들자. ExThread2에서는 total 값을 3333으로 바꾼다. ExThread1에서는 total 값을 9999으로 바꾼다. 실행해 보면 둘 다 3333으로 나오게 된다. Synchronized를 사용하게 되면 위와 같이 정상적으로 나오게 된다. wait()과 notify()를 이용한 스레드 제어 두 개의 스레드를 번갈아가면서 실행하기 위해서는 wait()와 notify()를 사용한...


#Callable #스레드동기화 #스레드 #락 #동기화 #데몬스레드 #synchronized #Runnable #Interrupt #Executors #쓰레드풀

원문링크 : [JAVA] 스레드 동기화