12 | 6 월 | 2008 | 커피 한 잔 의 여유 와 코딩 
 날짜 별 글 목록 : 2008 년 6 월 12 일 
 Java API 로그 레벨 과 Apache Log 4 j 로그 레벨 매칭 
 Apache Log 4 j 로그 레벨 – > Java java . util . logging 로그 레벨 
 TRACE -> FINEST 
 DEBUG -> FINE 
 WARN -> WARNING 
 ERROR -> SEVERE 
 FATAL -> SEVERE 
 이 글 은 Java 카테고리 에 분류 되 었 고 apache , apache log 4 j , java , java . util . logging , log 4 j 태그 가 있 으며 mcsong 님 에 의해 2008 년 6 월 12 일 에 작성 되 었 습니다 . 
 Synchronized , ReentrantLock , Thread - Safe 등 에 대해서 . . 
 1 . Reentrant 한 함수 는 Thread - Safe 하 다 . 
 2 . Thread - Safe 하 다고 해서 Reentrant 하 다고 볼 수 없 다 . 
 Reentrant 한 함수 는 다른 Thread 가 재 진입 을 하 건 Signal handler 에 의해 재 진입 을 하 건 아무 문제 없이 동작 하 는 함수 이 다 . 따라서 당연히 Thread - Safe 하 다 . 
 반면 Thread - Safe 한 함수 는 여러 Thread 가 동시 에 접근 할 경우 문제 만 없 으면 된다 . 
 아래 함수 는 Thread - Safe 하 다고 할 수 있 지만 Reentrant 하 다고 볼 수 없 다 . 
 void thread _ safe _ function ( ) 
 아래 의 내용 은 http : / / mindwing . kr / 103 에서 발췌 를 하 엿 습니다 . 
 synchronized 키워드 대신 java . util . concurrent . ReentrantLock 을 쓰 면 다음 의 잇 점 들 이 생깁니다 . 
 – lock 을 얻 으려는 스레드 를 interrupt 시킬 수 있 다 . 
 – lock 을 얻 는 데 대한 timeout 을 설정 할 수 있 다 . 
 – lock 에 2 개 이상 의 condition 을 설정 해서 쓸 수 있 다 . 
 – synchronized 키워드 를 위해 JVM 이 사용 하 는 lock 기능 은 하드웨어 의 lock 메커니즘 과 잘 매핑 되 지 않 는 문제 를 피할 수 있 다 . 
 둘 중 의 무엇 을 쓸 것 인지 는 다음 가이드 를 따르 면 됩니다 . 
 – java . util . concurrent 패키지 에 는 lock 기능 을 제공 하 는 다른 클 래스 들 이 많이 있 다 . 
 – 데이터 구조 등 의 사용 목적 에 따라 이 들 클 래스 를 쓰 는 것 이 synchronized 키워드 나 ReentrantLock 클래스 를 쓰 는 것 보다 낫 다 . 
 – synchronized 키워드 로 잘 동작 하 고 있 는 코드 거나 그런 코드 를 잘 만들 수 있 다면 synchronized 키워드 를 쓰 는 것 이 코드 수 도 적 고 , 에러 가 발생 할 가능 성 도 낮 다 . 
 – 여러 condition 을 설정 해서 써야 한다면 ReentrantLock 클래스 를 쓴다 . 
 이 글 은 Java 카테고리 에 분류 되 었 고 java , Lock , reentrant , synchronized , thread - safe 태그 가 있 으며 mcsong 님 에 의해 2008 년 6 월 12 일 에 작성 되 었 습니다 .