java.util.concurrent.ThreadPoolExecutor#isTerminating ( )源码实例Demo

下面列出了java.util.concurrent.ThreadPoolExecutor#isTerminating ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: jadx   文件: JadxWrapper.java
public void saveAll(File dir, ProgressMonitor progressMonitor) {
	Runnable save = () -> {
		try {
			decompiler.getArgs().setRootDir(dir);
			ThreadPoolExecutor ex = (ThreadPoolExecutor) decompiler.getSaveExecutor();
			ex.shutdown();
			while (ex.isTerminating()) {
				long total = ex.getTaskCount();
				long done = ex.getCompletedTaskCount();
				progressMonitor.setProgress((int) (done * 100.0 / total));
				Thread.sleep(500);
			}
			progressMonitor.close();
			LOG.info("decompilation complete, freeing memory ...");
			decompiler.getClasses().forEach(JavaClass::unload);
			LOG.info("done");
		} catch (InterruptedException e) {
			LOG.error("Save interrupted", e);
			Thread.currentThread().interrupt();
		}
	};
	new Thread(save).start();
}
 
源代码2 项目: phoenix   文件: ThreadPoolManager.java
static synchronized ThreadPoolExecutor getExecutor(ThreadPoolBuilder builder,
    Map<String, Object> poolCache) {
  ThreadPoolExecutor pool = (ThreadPoolExecutor) poolCache.get(builder.getName());
  if (pool == null || pool.isTerminating() || pool.isShutdown()) {
    pool = getDefaultExecutor(builder);
    LOG.info("Creating new pool for " + builder.getName());
    poolCache.put(builder.getName(), pool);
  }
  ((ShutdownOnUnusedThreadPoolExecutor) pool).addReference();

  return pool;
}
 
源代码3 项目: phoenix   文件: ThreadPoolManager.java
static synchronized ThreadPoolExecutor getExecutor(ThreadPoolBuilder builder,
    Map<String, Object> poolCache) {
  ThreadPoolExecutor pool = (ThreadPoolExecutor) poolCache.get(builder.getName());
  if (pool == null || pool.isTerminating() || pool.isShutdown()) {
    pool = getDefaultExecutor(builder);
    LOGGER.info("Creating new pool for " + builder.getName());
    poolCache.put(builder.getName(), pool);
  }
  ((ShutdownOnUnusedThreadPoolExecutor) pool).addReference();

  return pool;
}
 
源代码4 项目: phoenix   文件: ThreadPoolManager.java
static synchronized ThreadPoolExecutor getExecutor(ThreadPoolBuilder builder,
    Map<String, Object> poolCache) {
  ThreadPoolExecutor pool = (ThreadPoolExecutor) poolCache.get(builder.getName());
  if (pool == null || pool.isTerminating() || pool.isShutdown()) {
    pool = getDefaultExecutor(builder);
    LOG.info("Creating new pool for " + builder.getName());
    poolCache.put(builder.getName(), pool);
  }
  ((ShutdownOnUnusedThreadPoolExecutor) pool).addReference();

  return pool;
}
 
源代码5 项目: tomee   文件: OfferRejectedExecutionHandler.java
@Override
public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) {

    if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) {
        return;
    }

    try {
        if (!tpe.getQueue().offer(r, timeout, seconds)) {
            throw new RejectedExecutionException("Timeout waiting for executor slot: waited " + timeout + " " + seconds.toString().toLowerCase());
        }
    } catch (final InterruptedException e) {
        throw new RejectedExecutionException("Interrupted waiting for executor slot");
    }
}