반응형
synchronized
-
SynchronizedJava & 배경지식/기본상식 2020. 5. 2. 00:19
Synchronized란? Multi-thread로 인하여 동기화를 제어해야 하는 경우가 생긴다. 이 때 자바에서 제공하는 키워드인 Synchronized 키워드를 사용하여 Multi-thread 상태에서 동일한 자원을 동시에 접근하게 되었을 때 동시 접근을 막게 된다. 즉 공유 데이터에 lock을 걸어 먼저 작업중이던 쓰레드가 작업을 완전히 끝낼 때까지 다른 쓰레드에게 제어권이 넘어가더라도 데이터가 변경되지 않도록 보호함으로써 쓰레드의 동기화를 가능하게 한다. 더 쉽게 말한다면 쓰레드A가 작업하던 도중에 다른 쓰레드B에게 제어권이 넘어갔을 때, 쓰레드A가 작업하던 공유데이터를 쓰레드B가 임의로 변경하였다면, 다시 쓰레드A가 제어권을 받아서 나머지 작업을 마쳤을때 원래 의도한 것과는 다른 결과를 얻기 때..