2013-09-06 3 views
1

내가 순차적으로 작업을 실행해야합니다 가 Executor.execute에 시간 제한을 설정()

Executor executor = Executors.newSingleThreadExecutor(); 

public void push(Runnable task) { 
    executor.execute(task); 
} 

때때로 작업이 끝나지 않아. 다음 시간을 막지 못하도록 제한 시간을 설정하고 싶습니다.

편집 : 저는 "화재 및 잊지"필요 나는이 미래의 개체를 사용하여 수행 할 수 있습니다

+1

[타임 아웃 후 작업을 중단 ExecutorService입니다]를 살펴 보자 (http://stackoverflow.com/questions/2758612/executorservice-that-interrupts-tasks-after-a-timeout) – MadProgrammer

답변

1

이 실행 발신자를 차단할 수 없습니다로 디자인.

ExecutorService executor = Executors.newSingleThreadExecutor(); 

    Runnable task = new Runnable() { 
     @Override 
     public void run() { 
      //do your task 
     } 
    }; 

    Future<?> future = executor.submit(task); 

    future.get(60, TimeUnit.SECONDS); // awaits termination