Java Code Examples for java.util.concurrent.Future#isCancelled()
The following examples show how to use
java.util.concurrent.Future#isCancelled() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ProcessPipeline.java From paraflow with Apache License 2.0 | 6 votes |
void start() { for (Processor processor : processors) { for (int i = 0; i < processor.getParallelism(); i++) { RunningProcessor runningProcessor = new RunningProcessor(processor); futures.add(executorService.submit(runningProcessor)); runningProcessors.add(runningProcessor); } } logger.info("Loading pipeline started."); int finishedProcessors = 0; while (finishedProcessors < futures.size()) { for (Future future : futures) { if (future.isDone() || future.isCancelled()) { try { future.get(); } catch (InterruptedException | ExecutionException e) { // todo deal with execution exceptions e.printStackTrace(); } finishedProcessors++; } } } }
Example 2
Source File: Chapter07Concurrency03.java From Java-9-Cookbook with MIT License | 6 votes |
private static void demo1_Executor1() { System.out.println(); int shutdownDelaySec = 1; ExecutorService execService = Executors.newSingleThreadExecutor(); Runnable runnable = () -> System.out.println("Worker One did the job."); execService.execute(runnable); runnable = () -> System.out.println("Worker Two did the job."); Future future = execService.submit(runnable); try { execService.shutdown(); execService.awaitTermination(shutdownDelaySec, TimeUnit.SECONDS); } catch (Exception ex) { System.out.println("Caught around execService.awaitTermination(): " + ex.getClass().getName()); } finally { if (!execService.isTerminated()) { if (future != null && !future.isDone() && !future.isCancelled()) { System.out.println("Cancelling the task..."); future.cancel(true); } } List<Runnable> l = execService.shutdownNow(); System.out.println(l.size() + " tasks were waiting to be executed. Service stopped."); } }
Example 3
Source File: Chapter07Concurrency03.java From Java-9-Cookbook with MIT License | 6 votes |
private static void shutdownAndCancelTask(ExecutorService execService, int shutdownDelaySec, String name, Future future) { try { execService.shutdown(); System.out.println("Waiting for " + shutdownDelaySec + " sec before shutting down service..."); execService.awaitTermination(shutdownDelaySec, TimeUnit.SECONDS); } catch (Exception ex) { System.out.println("Caught around execService.awaitTermination(): " + ex.getClass().getName()); } finally { if (!execService.isTerminated()) { System.out.println("Terminating remaining running tasks..."); if (future != null && !future.isDone() && !future.isCancelled()) { System.out.println("Cancelling task " + name + "..."); future.cancel(true); } } System.out.println("Calling execService.shutdownNow()..."); List<Runnable> l = execService.shutdownNow(); System.out.println(l.size() + " tasks were waiting to be executed. Service stopped."); } }
Example 4
Source File: Chapter07Concurrency03.java From Java-9-Cookbook with MIT License | 6 votes |
private static void shutdownAndCancelTasks(ExecutorService execService, int shutdownDelaySec, List<Future<Result>> futures) { try { execService.shutdown(); System.out.println("Waiting for " + shutdownDelaySec + " sec before shutting down service..."); execService.awaitTermination(shutdownDelaySec, TimeUnit.SECONDS); } catch (Exception ex) { System.out.println("Caught around execService.awaitTermination(): " + ex.getClass().getName()); } finally { if (!execService.isTerminated()) { System.out.println("Terminating remaining running tasks..."); for (Future<Result> future : futures) { if (future.isDone() && !future.isCancelled()) { System.out.println("Cancelling task..."); future.cancel(true); } } } System.out.println("Calling execService.shutdownNow()..."); List<Runnable> l = execService.shutdownNow(); System.out.println(l.size() + " tasks were waiting to be executed. Service stopped."); } }
Example 5
Source File: Chapter07Concurrency03.java From Java-11-Cookbook-Second-Edition with MIT License | 6 votes |
private static void shutdownAndCancelTask(ExecutorService execService, int shutdownDelaySec, String name, Future future) { try { execService.shutdown(); System.out.println("Waiting for " + shutdownDelaySec + " sec before shutting down service..."); execService.awaitTermination(shutdownDelaySec, TimeUnit.SECONDS); } catch (Exception ex) { System.out.println("Caught around execService.awaitTermination(): " + ex.getClass().getName()); } finally { if (!execService.isTerminated()) { System.out.println("Terminating remaining running tasks..."); if (future != null && !future.isDone() && !future.isCancelled()) { System.out.println("Cancelling task " + name + "..."); future.cancel(true); } } System.out.println("Calling execService.shutdownNow()..."); List<Runnable> l = execService.shutdownNow(); System.out.println(l.size() + " tasks were waiting to be executed. Service stopped."); } }
Example 6
Source File: Chapter07Concurrency03.java From Java-11-Cookbook-Second-Edition with MIT License | 6 votes |
private static void demo1_Executor1() { System.out.println(); int shutdownDelaySec = 1; ExecutorService execService = Executors.newSingleThreadExecutor(); Runnable runnable = () -> System.out.println("Worker One did the job."); execService.execute(runnable); runnable = () -> System.out.println("Worker Two did the job."); Future future = execService.submit(runnable); try { execService.shutdown(); execService.awaitTermination(shutdownDelaySec, TimeUnit.SECONDS); } catch (Exception ex) { System.out.println("Caught around execService.awaitTermination(): " + ex.getClass().getName()); } finally { if (!execService.isTerminated()) { if (future != null && !future.isDone() && !future.isCancelled()) { System.out.println("Cancelling the task..."); future.cancel(true); } } List<Runnable> l = execService.shutdownNow(); System.out.println(l.size() + " tasks were waiting to be executed. Service stopped."); } }
Example 7
Source File: ExecutableScan.java From phoebus with Eclipse Public License 1.0 | 6 votes |
/** Abort scan * @param previous Previous state from `prepareAbort()` */ public void doAbort(final ScanState previous) { if (previous.isDone()) return; logger.log(Level.INFO, "Abort " + this + " (" + previous + ")"); // Interrupt, except when already aborted, failed, .. // to prevent interruption when in the middle of updating scan state PVs final Future<Object> save = future.orElse(null); if (save != null && ! save.isCancelled()) { final boolean interrupt = previous == ScanState.Idle || previous == ScanState.Running || previous == ScanState.Paused; save.cancel(interrupt); if (interrupt) logger.log(Level.INFO, "Interrupted " + this); else logger.log(Level.INFO, "Cancelled " + this); } synchronized (this) { notifyAll(); } }
Example 8
Source File: DataList.java From Bats with Apache License 2.0 | 6 votes |
private void moreDataAvailable() { final Future<?> future = this.future; if (future == null || future.isDone() || future.isCancelled()) { // Do not schedule a new task if there is an existing one that is still running or is waiting in the queue this.future = autoFlushExecutor.submit(this); } else { synchronized (this) { if (this.future == null) { // future is set to null before run() exists, no need to check whether future isDone() or isCancelled() this.future = autoFlushExecutor.submit(this); } else { isMoreDataAvailable = true; } } } }
Example 9
Source File: ScheduledThreadPoolExecutorTracer.java From alpaca-java with MIT License | 6 votes |
@Override protected void afterExecute(final Runnable r, Throwable t) { super.afterExecute(r, t); if (t == null && r instanceof Future<?>) { try { final Future<?> future = (Future<?>) r; if (future.isDone() && !future.isCancelled()) { future.get(); } } catch (final CancellationException ce) { t = ce; } catch (final ExecutionException ee) { t = ee.getCause(); } catch (final InterruptedException ie) { Thread.currentThread().interrupt(); } } if (t != null) { t.printStackTrace(); } }
Example 10
Source File: Chapter07Concurrency03.java From Java-9-Cookbook with MIT License | 6 votes |
private static void printResults(List<Future<Result>> futures, int timeoutSec) { System.out.println("Results from futures:"); if (futures == null || futures.size() == 0) { System.out.println("No results. Futures" + (futures == null ? " = null" : ".size()=0")); } else { for (Future<Result> future : futures) { try { if (future.isCancelled()) { System.out.println("Worker is cancelled."); } else { Result result = future.get(timeoutSec, TimeUnit.SECONDS); System.out.println("Worker " + result.getWorkerName() + " slept " + result.getSleepSec() + " sec. Result = " + result.getResult()); } } catch (Exception ex) { System.out.println("Caught while getting result: " + ex.getClass().getName()); } } } }
Example 11
Source File: CompilerThread.java From TencentKona-8 with GNU General Public License v2.0 | 5 votes |
/** * Count the number of active sub tasks. */ public synchronized int numActiveSubTasks() { int c = 0; for (Future<?> f : subTasks) { if (!f.isDone() && !f.isCancelled()) { c++; } } return c; }
Example 12
Source File: CancelledProducerConsumerLoops.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
void assertCancelled(Future<?> future) throws Exception { if (!future.isDone()) throw new AssertionError("not done"); if (!future.isCancelled()) throw new AssertionError("not cancelled"); try { future.get(LONG_DELAY_MS, MILLISECONDS); throw new AssertionError("should throw CancellationException"); } catch (CancellationException success) {} }
Example 13
Source File: QCloudUploader.java From java-unified-sdk with Apache License 2.0 | 5 votes |
@Override public void interruptImmediately() { super.interruptImmediately(); if (tasks != null && tasks.length > 0) { synchronized (tasks) { for (int index = 0; index < tasks.length; index++) { Future task = tasks[index]; if (task != null && !task.isDone() && !task.isCancelled()) { task.cancel(true); } } } } }
Example 14
Source File: AsyncScriptRunner.java From sailfish-core with Apache License 2.0 | 5 votes |
private void resultScript(Map<Long, Future<Exception>> runningScriptMap) throws InterruptedException { Iterator<Entry<Long, Future<Exception>>> iterator = runningScriptMap.entrySet().iterator(); while (iterator.hasNext()) { Entry<Long, Future<Exception>> scriptFeature = iterator.next(); Future<Exception> future = scriptFeature.getValue(); if (future.isDone()) { iterator.remove(); Long currentTestScript = scriptFeature.getKey(); TestScriptDescription descr = testScripts.get(currentTestScript); unlockServices(descr); Throwable result; try { result = future.get(); } catch (Exception e) { logger.warn("Interrupt of matrix execution, reason : {}", e.getMessage(), e); result = e; } if (future.isCancelled()) { descr.scriptInterrupted(); } else if (result != null) { descr.scriptRunFailed(result); } else { descr.scriptExecuted(); } onRunFinished(descr); logger.info("TestScript {} was executed", currentTestScript); } } }
Example 15
Source File: CompilerThread.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 5 votes |
/** * Count the number of active sub tasks. */ public synchronized int numActiveSubTasks() { int c = 0; for (Future<?> f : subTasks) { if (!f.isDone() && !f.isCancelled()) { c++; } } return c; }
Example 16
Source File: MessageScheduler.java From rqueue with Apache License 2.0 | 5 votes |
private void waitForRunningQueuesToStop() { for (Map.Entry<String, Boolean> runningState : queueRunningState.entrySet()) { String queueName = runningState.getKey(); ScheduledTaskDetail scheduledTaskDetail = queueNameToScheduledTask.get(queueName); if (scheduledTaskDetail != null) { Future<?> future = scheduledTaskDetail.getFuture(); boolean completedOrCancelled = future.isCancelled() || future.isDone(); if (!completedOrCancelled) { future.cancel(true); } } } }
Example 17
Source File: AsyncController.java From ProjectStudy with MIT License | 5 votes |
/** * 多个异步执行 * * @param * @return java.lang.String * @throws * @author wliduo[[email protected]] * @date 2020/5/20 10:26 */ @GetMapping("/run3") public String run3() throws Exception { logger.info("run3开始执行"); long start = System.currentTimeMillis(); Future<String> future3 = asyncService.task3(); Future<String> future4 = asyncService.task4(); // 这样与下面是一样的 logger.info(future3.get()); logger.info(future4.get()); // 先判断是否执行完成 boolean run3Done = Boolean.FALSE; while (true) { if (future3.isDone() && future4.isDone()) { // 执行完成 run3Done = Boolean.TRUE; break; } if (future3.isCancelled() || future4.isCancelled()) { // 取消情况 break; } } if (run3Done) { logger.info(future3.get()); logger.info(future4.get()); } else { // 其他异常情况 } long end = System.currentTimeMillis(); logger.info("run3执行完成,执行时间: {}", end - start); return "run3 success"; }
Example 18
Source File: Lesson1.java From Java-Concurrency-Multithreading-in-Practice with MIT License | 5 votes |
public static void demoFutureWithCallable() throws InterruptedException, ExecutionException { System.out.println(); System.out.println("Demo Future with Callable"); ExecutorService pool = Executors.newCachedThreadPool(); Future<Pizza> pizzaPickupOrder = pool.submit(() -> { System.out.println(" Restaurant> Slicing tomatoes"); System.out.println(" Restaurant> Chopping onions"); System.out.println(" Restaurant> Spreading with tomato sauce and sprinkle with toppings"); System.out.println(" Restaurant> Baking pizza"); TimeUnit.MILLISECONDS.sleep(300); return new Pizza(); }); System.out.println("Me: Call my brother"); TimeUnit.MILLISECONDS.sleep(200); System.out.println("Me: Walk the dog"); // Try this: pizzaPickupOrder.cancel(true); if (pizzaPickupOrder.isCancelled()) { System.out.println("Me: pizza is cancelled, order something else"); System.out.println("pizzaPickupOrder.isDone(): " + pizzaPickupOrder.isDone()); } else if (!pizzaPickupOrder.isDone()) { System.out.println("Me: Watch a TV show"); } Pizza pizza = pizzaPickupOrder.get(); System.out.println("Me: Eat the pizza: " + pizza); pool.shutdown(); System.out.println(); System.out.println(); }
Example 19
Source File: AsyncReports.java From jpeek with MIT License | 4 votes |
@Override public Func<String, Response> apply(final String group, final String artifact) throws IOException { final Future<Func<String, Response>> future = new IoCheckedBiFunc<>( this.cache ).apply(group, artifact); final Func<String, Response> output; if (future.isCancelled()) { output = input -> new RsPage( new RqFake(), "error", () -> new IterableOf<>( new XeAppend("group", group), new XeAppend("artifact", artifact), new XeAppend("future", future.toString()) ) ); } else if (future.isDone()) { try { output = future.get(); } catch (final InterruptedException | ExecutionException ex) { throw new IllegalStateException(ex); } } else { final long msec = System.currentTimeMillis() - this.starts.computeIfAbsent( String.format("%s:%s", group, artifact), s -> System.currentTimeMillis() ); output = input -> new RsWithStatus( new RsPage( new RqFake(), "wait", () -> new IterableOf<>( new XeAppend("group", group), new XeAppend("artifact", artifact), new XeAppend("future", future.toString()), new XeAppend("msec", Long.toString(msec)), new XeAppend( "spent", Logger.format("%[ms]s", msec) ) ) ), HttpURLConnection.HTTP_NOT_FOUND ); } return output; }
Example 20
Source File: Registry.java From ballerina-message-broker with Apache License 2.0 | 4 votes |
private boolean cancelTimeoutTask(Branch branch) { Future timeoutTaskFuture = branch.getTimeoutTaskFuture(); return Objects.isNull(timeoutTaskFuture) || timeoutTaskFuture.isCancelled() || timeoutTaskFuture.cancel(false); }