Synchronized (동기화)


Synchronized (동기화)

Advanced JAVA Synchronized (동기화) 루크 2016. 11. 20. 14:44 이웃추가 본문 기타 기능 쓰레드와 동기화는 매우 밀접한 관계이다. 이전 페이지에서 쓰레드에 안전하다 못하다라는 말을 했었다. 그 말인 즉슨, 동기화가 구현되어 있고, 안되어 있고의 차이였다. 실제 쓰레드 프로그래밍에서 하나의 인스턴스에 둘 이상으 쓰레드가 접근하는 형태의 구현이 자주 등장한다. 이때 동기화 처리를 해주지 않으면 문제가 발생한다. 여러 쓰레드가 한 인스턴스에 선언된 메소드나 변수에 접근하여 데이터를 처리하려고 할 때 동시에 연산을 수행하여 값이 꼬이는 경우가 발생할 수 있다. (인스턴스 변수일때만, 매개변수나 지역변수는 동기화할 필요 없다. 또 해당 조건이 있을 때만 동기화를 사용한다.) 한 쓰레드가 접근해서 연산을 완료할 때까지, 다른 쓰레드가 접근하지 못하도록 막아야 한다. 동기화를 선언하면 한 순간에는 하나의 쓰레드만 메소드를 수행하거나 변수에 접근할 수 있다. 동...



원문링크 : Synchronized (동기화)