결과를 정확한 순서로 요구하는 계산 (CTR 암호화)이 있습니다.Java : 비동기 작업에서 검색된 결과 주문
이 결과를 계산하는 멀티 스레드 디자인을 만들었습니다.이 경우 결과는 ByteBuffer입니다. 물론 계산 자체는 비동기 적으로 실행되므로 언제든지 어떤 순서로든 결과를 사용할 수 있습니다. "사용자"는 메서드를 호출하여 결과를 사용하는 단일 스레드 응용 프로그램이며, 그 후에 메서드는 ByteBuffers를 리소스 풀로 반환합니다. 리소스 관리는 이미 스레드 안전 스택을 사용하여 처리됩니다.
이제 질문 : 결과를 취합하여 오른쪽 순서에서 사용할 수있는 것이 필요합니다. 다음 결과를 사용할 수 없으면 사용자가 호출 한 메서드가있을 때까지 차단해야합니다. 누구든지 비동기 적으로 계산 된 결과를 순서대로 반환 할 수있는 java.util.concurrent의 좋은 전략이나 클래스를 알고 있습니까?
솔루션은 스레드로부터 안전해야합니다. 제 3 자 라이브러리 인 Thread.sleep()/Thread.wait()를 피하고 "synchronized"가 아닌 다른 관련 키워드를 피하고 싶습니다. 더구나, 작업은 예를 들어. 필요하다면 집행자를 올바른 순서로 선택하십시오. 이것은 연구용이므로 Java 1.6 또는 1.7 구조를 자유롭게 사용할 수 있습니다.
참고 : JRE 및 [암호화]에 정의 된 클래스 내에서 누군가가 이미 처리해야 할 수도 있으므로이 질문 [jre]에 태그를 지정했지만 질문 자체는 순전히 Java에 관한 것입니다. & 멀티 스레딩.
왜 ByteBuffer 배열을 만들고 Bytebuffer를 스레드로 전달하지 않습니까? 모든 스레드가 완료되면 배열 순서대로 ByteBuffers를 작성하십시오. – fge
암호화와 관련이 없으므로 '암호화'태그를 제거했습니다. –