나는 어떤 스레드를 생성하는 스레드를 생성하는 모듈을 작성 중이다. 그래서 전반적으로 나는 'Thread'를 사용하여 'Task'를 만들고 제출하는 'Resolver'클래스에 정보를 제공하는 'Manager'클래스를 가지고 있습니다.대기열에서 이미 생성 된 작업을 찾는 전략
Resolver에는 perticular 작업이 이미 생성되었는지 확인하기 위해 사용하고있는 무제한 대기열이있는 스레드 풀 실행 프로그램이 있습니다. 대기열에 이미 작업의 인스턴스가있는 경우 ThreadPoolExecutor를 사용하여 제거하고 새 작업을 다시 제출합니다. 이것은 새로운 작업이 '관리자'로부터 새로운 정보를 가져 오기 때문에 의도적으로 수행됩니다.
ThreadPoolexecutor를 사용하여 작업이 이미 대기열인지 확인합니다. 하지만 대기열의 성능에 대해 걱정이됩니다. 대기열에 30000 개가 넘는 작업 인스턴스가있을 수 있기 때문에 해시 맵이 더 나은 선택이라고 생각합니다.
대기열에 이미 생성 된 작업을 찾기위한 적절한 전략을 선택하도록 안내합니다.
작업을 찾는 것보다는'Future.cancel (false)'를 사용하면 작업이 아직 시작되지 않은 경우 작업을 중지 할 수 있습니다. –