minuco
article thumbnail
스레드 (Thread) - 동기화 메소드 (2)
Android/java 2021. 2. 24. 22:18

동기화 메서드 지난 시간에는 스레드 A를 사용하는 중 스레드 B를 사용하면 스레드 B가 스레드 A의 상태를 변경시켜버려 의도하지 않았던 결과를 얻었는데요, 이를 방지하기 위한 방법을 알아보겠습니다! 스레드가 사용 중인 객체를 다른 스레드가 변경할 수 없게 하려면 스레드 작업이 끝날 때까지 객체에 잠금을 걸어서 다른 스레드가 사용할 수 없도록 해야 합니다. 멀티 스레드에서 단 하나의 영역을 실행할 수 있는 영역을 임계 영역이라 하는데 자바는 임계 영역을 지정하기 위해 동기화 메서드를 제공합니다. 내부의 동기화 메서드를 실행하면 즉시 객체에서 잠금을 걸어 다른 스레드가 동기화 매소드를 실행하지 못하게 해요! 그 방법을 설명드리겠습니다. 동기화 메서드를 만들려면 메서드 선언부에 synchronized 키워드를..