2012-05-25 3 views
0

멀티 스레딩을 사용하여 대량 데이터 파일을 읽고 데이터 유효성 검사, 유효성 검사 실패 추적 및 데이터베이스에 삽입 등의 데이터 처리가 필요합니다. 주 스레드를 사용하여 파일에서 데이터를 읽고 ExecutorService을 사용하여 데이터를 처리하려고했습니다.멀티 스레드 및 ExecutorService를 사용하여 주 스레드 및 프로세스 데이터를 사용하여 파일 읽기

  1. 이 방법이 올바른 방법입니까? 그렇다면 어떻게해야합니까?

  2. 또한 데이터베이스에 대해 유효성 검사 및 삽입 작업을 수행하면 모든 레코드 출력을 추적해야합니다. 모든 레코드의 트랙 출력을 어떻게 할 수 있습니까? 하나의 공통 변수를 넣고 실패 기록 데이터의 수를 늘릴 수 있습니까?

  3. 또한 순차적으로 얼마나 많은 레코드가 실패했는지 추적해야합니까?

감사합니다.

+0

병목 현상이 데이터베이스 일 가능성이 높습니다. 따라서 데이터를 먼저 배치하면 성능이 향상 될 가능성이 높아지며 (상대적으로 간단합니다) 멀티 스레딩 예제의 경우 빠른 검색을 수행합니다 구글에. ;) –

답변

0

당신의 아이디어는 내가 같은 것을 할 것, IMO 올바른 : I가 제안

while ((line = filereader.readLine()) != null) { 
    Mycallable mycallable = new Mycallable(line); 
    executor.submit(mycallable); 
      } 
2

을 파일을 가상 세그먼트로 분할하고 집행자가 이러한 세그먼트를 선택하여 처리 할 수있게하십시오. 주 스레드에서 파일을 읽으면 결국 병목 현상이 발생합니다. 각 스레드가 개별적으로 세그먼트를 읽을 수있게하십시오. 다음 게시물을 참조하십시오. How to implement Concurrent read to a file mapped to memory in Java?