디스크에서 여러 개의 큰 페이지를 읽고 여러 범위 검색을 수행하는 프로그램을 개발 중입니다. 프로그램은 여러 페이지에서 읽은 다음 쿼리 결과를 출력 페이지에 씁니다. 출력의 순서를 유지해야 입력 순서와 일치합니다.주 기능이 디스크에서 읽는 프로그램을 멀티 스레드하는 것이 좋은 생각입니까?
그러나 프로그램이 여러 번 읽은 후 매우 느려지므로 한 번에 여러 검색을 실행하기 위해 다중 스레드 프로그램을 사용하려고합니다. 나는 4 코어 리눅스 머신을 가지고 있으며, 두 개의 프로그램 스레드를 갖고 싶다. 좋은 생각입니까? 출력 파일의 순서를 어떻게 유지할 수 있습니까? 잠금이 도움이되지 않습니다. 왜냐하면 어떤 스레드가 먼저 완료 될지 알지 못하기 때문입니다.
어떻게하면됩니까?
감사
업데이트
: 이것은 SQL 라이브러리의 어떤 종류를 사용하지 않고 수행해야합니다.
프로그램이 파일을 읽는 데 더 많은 시간을 들여야합니까? 데이터를 처리하고 있습니까? 독서를한다면, 다중 코어가 도움이되지 않습니다. 여러 디스크 또는 SSD를 가져 오는 것이 도움이 될 수 있습니다. – Joni
읽기가 문제입니다. – Salma