mayInterruptIfRunning設成false話,不允許在線程運行時中斷,設成true的話就允許。
可以參考下面的代碼來理解,如果設為false的話,會打印到99999,如果設成true的話,可能就打印不到99999
package interrupt; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class Future01 { public static void main(String[] args) { ExecutorService eService = Executors.newFixedThreadPool(5); Future<?> future= eService.submit(new RunFuture()); try { Thread.sleep(10); future.cancel(false); //future.cancel(true); System.out.println("haha---------------"); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class RunFuture implements Runnable{ int i=0; @Override public void run() { while (i<100000&&!Thread.currentThread().isInterrupted()/**/) { System.out.println("i++:"+i); i++; } } }