2016-03-20 7 views

Antwort

3

sollten Sie verwenden ein ExecutorService:

ExecutorService executor = Executors.newSingleThreadExecutor(); 
Future<Integer> future = executor.submit(new Task()); 

try { 
    System.out.println("Started"); 
    Integer retval = future.get(10, TimeUnit.SECONDS)); // you can choose your desired time here 
    System.out.println("Finished"); 
} catch (TimeoutException e) { 
    future.cancel(true); 
    System.out.println("Timeout happened"); 
    // handle termination here 
} 

executor.shutdownNow(); 

Und Ihre Callable kann wie folgt aussehen:

class Task implements Callable<Integer> { 
    @Override 
    public String call() throws Exception { 
     // some code here 
     return 0; 
    } 
} 
Verwandte Themen