본문 바로가기

Java/JSP

[Java] synchronized 란?

Java 하며서 이론적으로 자주 마주 치는 놈이 이것인데....
이건 간단히 말하면 db 락의 개념으로 보면 된다.
synchronized 이게 붙어 있는 매쏘드는 그 매쏘드의 작업이 끝나기 전에 다른 놈이 사용을 못하게 하는 것이지..

엇 자 그런데 만약에 synchronized 가 붙은 method 가 있는 클래스를 new 를 통해서 생성해서 각각 쓰면 이게 동기화가 될까?
----------------------------------
ex)
class A{

synchronized test(){
}

}
class B{

new A().test();
new A().test();

}
----------------------------------

결론은 아니다 이다.
즉, 위에 이놈들은 각각 object 가 틀린 놈이기 때문에 다른 놈으로 본다 이거지... 이걸 막기 위해서 최초 프로그램이 loading 될때 메모리에 적재 시키게 하는 static 를 넣어서 method 를 정의 하면 된다.

참고로
publicsynchronizedvoid A() { ... } 는
public void A() {synchronized(this){ ... } } 과 똑같고,

publicstatic synchronizedvoid A() { ... } 는
publicstaticvoid A() {synchronized(this.getClass()){ ... } } 과 똑같다.

출처 : http://interwater.tistory.com/13

iOS 6 vs. iOS 5 성능 차이는? 맥월드 랩 테스트 결과
iOS 6에는 200가지 이상의 새로운 기능이 추가됐다. 이런 업그레이드가 성능에는 어떤 영향을 줄까? 맥월드 랩(Macworld Lab)에서는 iOS 기기를 대상으로 iOS 6로 업그레이드하기 전과 후를 비교해서 속도가 빨라졌는지...

Indonesia-Terror Arrests
An Indonesian anti-terror squad walks near the house of a suspected militant after a police raid in Solo, Central Java, Indonesia Sunday, Sept 23, 2012. The elite Indonesian anti-terror squad has arrested...

Indonesia Terror Arrests
An Indonesian police officer stands guard outside the house of a suspected militant after a police raid, in Solo, Central Java, Indonesia. An elite Indonesian anti-terror squad has arrested 10 Islamic...