2011-03-02 9 views
1

저는 ScheduledThreadPoolExecutor를 사용하여 짧은 작업 실행을 x 시간 (몇 초 미만)으로 지연합니다. 나는 7 킬로바이트 작업을 3 초 일정으로 예약하면 오버 헤드가 무엇인지 알고 싶습니다. 거기에 더 나은 대안이 같은 일을 (현명한 성능) 무엇입니까?ScheduledThreadPoolExecutor를 사용하는 오버 헤드

답변

0

실제로 다중 스레드 방식으로 수행해야하는 경우 오버 헤드가 훨씬 적은 솔루션이 없다고 생각합니다.

그러나 필요한 모든 것이 다른 스레드 (예 : 일종의 시뮬레이션)에서 실행되는 것이 아니라 지연된 실행 인 경우 결과적으로 동일한 스레드에서 모든 작업을 실행하여 동기화 오버 헤드를 제거 할 수 있습니다. 예를 들어, 실행 시간 순서대로 PriorityQueue에 작업을 배치하고 실행 시간에 대기열에서 첫 번째 작업을 실행할 수있는 루프를 실행하는 작업을 만들 수 있습니다.