멀티 쓰레드에서 SimpleDateFormat 사용
자바/자바 - 짧게 쓰는 글2017. 11. 30. 23:07
최근 크롤링을 위해 멀티 쓰레드 환경에서 SImpleDateFormat을 사용하다가 오류가 뜨는 것을 보았다.
나에게 발생한 문제는 NumberFormat이었던가? 여튼 포맷이 틀려서 발생하는 문제였는데 다른 사람의 문제를 찾아보니 ArrayIndexOutOfBound 등 다양한 문제를 야기시켰다.
만약 다중 쓰레드를 쓰는데 SimpleDateFormat 부분에서 오류가 났다면 한 번쯤 내가 SimpleDateFormat을 static으로 써서 그런 것은 아닌지 생각해야 할 것 같다. 의외로 쓰레드 문제 때문에 발생하는 예외의 종류가 획일적이지 않고 다양하다.
남들은 FastDateFormat인가? 하는 라이브러리로 해결할 수 있다고 하는데 이 문제는 점유 문제였기 때문에 clone() 메서드를 써서 static으로 만들어뒀던 SimpleDateFormat을 필요한 곳에 얕은 복사해서 쓰는 방법으로 해결했다. (그냥 쓰레드마다 new SimpleDateFormat()해줬단 뜻)
'자바 > 자바 - 짧게 쓰는 글' 카테고리의 다른 글
src와 srcCompat의 차이 (1) | 2017.08.05 |
---|---|
얕은 복사 문제 (0) | 2017.07.30 |
JSP JasperException 해결 (0) | 2017.07.26 |
SQLException Can not issue data manipulation의 원인과 해결 (0) | 2017.07.22 |
톰캣 오류 http 500 Error instantiating servlet class 해결 (0) | 2017.07.21 |