정보 블록이 포함 된 이진 파일이 있습니다 (이후 패킷으로 참조 할 것입니다.). 각 패킷은 고정 길이 헤더와 가변 길이 본문으로 구성됩니다. 패킷 헤더 자체에서 몸체의 1/10을 결정했습니다. 내 임무는 파일에서 이러한 패킷을 읽고 그들에 대한 몇 가지 작업을 수행하는 것입니다. 다음과 같이 현재 나는이 작업을 수행하고 있습니다 :Java - 병렬로 이진 파일 읽기
- 랜덤 액세스 파일로 파일을 열면 특정 시작 위치 (사용자가 지정한 시작 위치)로 이동. 이 위치에서 첫 번째 패킷을 읽습니다. 내가 파일 마커의 끝을 칠 때까지 내 작업 을 수행하는 다음 패킷
- 을 읽는 루프
- 에 그런 다음 특정 동작을
- 공연이 계속된다. 당신이 추측 수 있듯이 파일 크기가 큰 경우
는 순차적으로 각 패킷을 읽고 그것을 처리하는 것은 시간이 많이 걸리는 일이다. 어떻게 든이 작업 즉 패킷 생성 작업을 병렬 처리하여 일부 차단 대기열에 넣은 다음 병렬 처리하여 각 패킷을 대기열에서 검색하고 작업을 수행하려고합니다.
누군가 이러한 패킷을 어떻게 병렬로 생성 할 수 있습니까?
각 패킷 헤더 파일의 파일에서 첫 번째 이후의 위치는 이전 패킷의 크기에 좌우됩니까? –
@ 테드 :별로. 읽은 바이트의 특정 서명을 기반으로 다음 패킷 헤더의 시작을 감지합니다. 선행 패킷의 끝 부분 이후에 나타나지만 특정 위치에서는 나타나지 않습니다. – Sujay