thread 썸네일형 리스트형 [Java] Semaphore(세마포어)를 이용한 ThreadExecutor DB에서 데이터를 읽어와서 네트워크를 통해 뭔가 작업을 한 후 다시 DB에 넣는 작업을 해야하는데 이 데이터의 건수가 많고 네트워크를 통한 작업에 시간이 좀 걸려서 이 부분을 스레드로 돌렸다. 기존에 알고 있는 Executor exec = Executors.newFixedThreadPool(10); 을 사용해서 실행을 했더니 DB에서 데이터 읽어오는 속도가 훨씬 빠른탓에 OOM 에러가 발생하기 시작... 처음에 도무지 왜 에러가 나는지 몰랐는데 확인해보니.. 내부에서 스레드들이 처리하지 못 한 JOB을 Queue에 저장해 두는데 이게 너무 쌓이다보니 문제가 되었던듯 하여... 자바병렬처리 프로그래밍 책을 다시 집어들었다. 미리 준비된 ExecutorService중 스레드가 추가 작업을 하지 못 할 때 w.. 더보기 그냥 우연히 뭔가 해보다가.. main 메서드가 있는 일반적인 자바 어플리케이션을 만들어서 아래와 같이 돌려보았다.. 이렇게 해서 돌려보니까... main end......................... Thread-0 : [0] Thread-6 : [6] Thread-5 : [5] Thread-2 : [2] Thread-7 : [7] Thread-1 : [1] Thread-4 : [4] Thread-3 : [3] Thread-10 : [10] Thread-8 : [8] Thread-9 : [9] Thread-13 : [13] Thread-17 : [17] Thread-12 : [12] Thread-16 : [16] Thread-14 : [14] Thread-18 : [18] Thread-11 : [11] Thread-15 : [.. 더보기 이전 1 다음