java.util.concurrent.ThreadPoolExecutor.interruptIdleWorkers()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(9.2k)|赞(0)|评价(0)|浏览(90)

本文整理了Java中java.util.concurrent.ThreadPoolExecutor.interruptIdleWorkers()方法的一些代码示例,展示了ThreadPoolExecutor.interruptIdleWorkers()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ThreadPoolExecutor.interruptIdleWorkers()方法的具体详情如下:
包路径:java.util.concurrent.ThreadPoolExecutor
类名称:ThreadPoolExecutor
方法名:interruptIdleWorkers

ThreadPoolExecutor.interruptIdleWorkers介绍

[英]Common form of interruptIdleWorkers, to avoid having to remember what the boolean argument means.
[中]常见的中断形式,以避免必须记住布尔参数的含义。

代码示例

代码示例来源:origin: robovm/robovm

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: robovm/robovm

/**
 * Sets the policy governing whether core threads may time out and
 * terminate if no tasks arrive within the keep-alive time, being
 * replaced if needed when new tasks arrive. When false, core
 * threads are never terminated due to lack of incoming
 * tasks. When true, the same keep-alive policy applying to
 * non-core threads applies also to core threads. To avoid
 * continual thread replacement, the keep-alive time must be
 * greater than zero when setting {@code true}. This method
 * should in general be called before the pool is actively used.
 *
 * @param value {@code true} if should time out, else {@code false}
 * @throws IllegalArgumentException if value is {@code true}
 *         and the current keep-alive time is not greater than zero
 *
 * @since 1.6
 */
public void allowCoreThreadTimeOut(boolean value) {
  if (value && keepAliveTime <= 0)
    throw new IllegalArgumentException("Core threads must have nonzero keep alive times");
  if (value != allowCoreThreadTimeOut) {
    allowCoreThreadTimeOut = value;
    if (value)
      interruptIdleWorkers();
  }
}

代码示例来源:origin: robovm/robovm

/**
 * Sets the maximum allowed number of threads. This overrides any
 * value set in the constructor. If the new value is smaller than
 * the current value, excess existing threads will be
 * terminated when they next become idle.
 *
 * @param maximumPoolSize the new maximum
 * @throws IllegalArgumentException if the new maximum is
 *         less than or equal to zero, or
 *         less than the {@linkplain #getCorePoolSize core pool size}
 * @see #getMaximumPoolSize
 */
public void setMaximumPoolSize(int maximumPoolSize) {
  if (maximumPoolSize <= 0 || maximumPoolSize < corePoolSize)
    throw new IllegalArgumentException();
  this.maximumPoolSize = maximumPoolSize;
  if (workerCountOf(ctl.get()) > maximumPoolSize)
    interruptIdleWorkers();
}

代码示例来源:origin: robovm/robovm

/**
 * Sets the time limit for which threads may remain idle before
 * being terminated.  If there are more than the core number of
 * threads currently in the pool, after waiting this amount of
 * time without processing a task, excess threads will be
 * terminated.  This overrides any value set in the constructor.
 *
 * @param time the time to wait.  A time value of zero will cause
 *        excess threads to terminate immediately after executing tasks.
 * @param unit the time unit of the {@code time} argument
 * @throws IllegalArgumentException if {@code time} less than zero or
 *         if {@code time} is zero and {@code allowsCoreThreadTimeOut}
 * @see #getKeepAliveTime(TimeUnit)
 */
public void setKeepAliveTime(long time, TimeUnit unit) {
  if (time < 0)
    throw new IllegalArgumentException();
  if (time == 0 && allowsCoreThreadTimeOut())
    throw new IllegalArgumentException("Core threads must have nonzero keep alive times");
  long keepAliveTime = unit.toNanos(time);
  long delta = keepAliveTime - this.keepAliveTime;
  this.keepAliveTime = keepAliveTime;
  if (delta < 0)
    interruptIdleWorkers();
}

代码示例来源:origin: robovm/robovm

/**
 * Sets the core number of threads.  This overrides any value set
 * in the constructor.  If the new value is smaller than the
 * current value, excess existing threads will be terminated when
 * they next become idle.  If larger, new threads will, if needed,
 * be started to execute any queued tasks.
 *
 * @param corePoolSize the new core size
 * @throws IllegalArgumentException if {@code corePoolSize < 0}
 * @see #getCorePoolSize
 */
public void setCorePoolSize(int corePoolSize) {
  if (corePoolSize < 0)
    throw new IllegalArgumentException();
  int delta = corePoolSize - this.corePoolSize;
  this.corePoolSize = corePoolSize;
  if (workerCountOf(ctl.get()) > corePoolSize)
    interruptIdleWorkers();
  else if (delta > 0) {
    // We don't really know how many new threads are "needed".
    // As a heuristic, prestart enough new workers (up to new
    // core size) to handle the current number of tasks in
    // queue, but stop if queue becomes empty while doing so.
    int k = Math.min(delta, workQueue.size());
    while (k-- > 0 && addWorker(null, true)) {
      if (workQueue.isEmpty())
        break;
    }
  }
}

代码示例来源:origin: robovm/robovm

/**
 * Initiates an orderly shutdown in which previously submitted
 * tasks are executed, but no new tasks will be accepted.
 * Invocation has no additional effect if already shut down.
 *
 * <p>This method does not wait for previously submitted tasks to
 * complete execution.  Use {@link #awaitTermination awaitTermination}
 * to do that.
 */
public void shutdown() {
  final ReentrantLock mainLock = this.mainLock;
  mainLock.lock();
  try {
    checkShutdownAccess();
    advanceRunState(SHUTDOWN);
    interruptIdleWorkers();
    onShutdown(); // hook for ScheduledThreadPoolExecutor
  } finally {
    mainLock.unlock();
  }
  tryTerminate();
}

代码示例来源:origin: robovm/robovm

return;
if (workerCountOf(c) != 0) { // Eligible to terminate
  interruptIdleWorkers(ONLY_ONE);
  return;

代码示例来源:origin: MobiVM/robovm

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: ibinti/bugvm

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: org.codehaus.jsr166-mirror/jsr166

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: com.bugvm/bugvm-rt

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: com.gluonhq/robovm-rt

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: FlexoVM/flexovm

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: org.apidesign.bck2brwsr/emul

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: jtulach/bck2brwsr

/**
 * Common form of interruptIdleWorkers, to avoid having to
 * remember what the boolean argument means.
 */
private void interruptIdleWorkers() {
  interruptIdleWorkers(false);
}

代码示例来源:origin: ibinti/bugvm

/**
 * Sets the maximum allowed number of threads. This overrides any
 * value set in the constructor. If the new value is smaller than
 * the current value, excess existing threads will be
 * terminated when they next become idle.
 *
 * @param maximumPoolSize the new maximum
 * @throws IllegalArgumentException if the new maximum is
 *         less than or equal to zero, or
 *         less than the {@linkplain #getCorePoolSize core pool size}
 * @see #getMaximumPoolSize
 */
public void setMaximumPoolSize(int maximumPoolSize) {
  if (maximumPoolSize <= 0 || maximumPoolSize < corePoolSize)
    throw new IllegalArgumentException();
  this.maximumPoolSize = maximumPoolSize;
  if (workerCountOf(ctl.get()) > maximumPoolSize)
    interruptIdleWorkers();
}

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

/**
 * Sets the maximum allowed number of threads. This overrides any
 * value set in the constructor. If the new value is smaller than
 * the current value, excess existing threads will be
 * terminated when they next become idle.
 *
 * @param maximumPoolSize the new maximum
 * @throws IllegalArgumentException if the new maximum is
 *         less than or equal to zero, or
 *         less than the {@linkplain #getCorePoolSize core pool size}
 * @see #getMaximumPoolSize
 */
public void setMaximumPoolSize(int maximumPoolSize) {
  if (maximumPoolSize <= 0 || maximumPoolSize < corePoolSize)
    throw new IllegalArgumentException();
  this.maximumPoolSize = maximumPoolSize;
  if (workerCountOf(ctl.get()) > maximumPoolSize)
    interruptIdleWorkers();
}

代码示例来源:origin: org.apidesign.bck2brwsr/emul

/**
 * Sets the maximum allowed number of threads. This overrides any
 * value set in the constructor. If the new value is smaller than
 * the current value, excess existing threads will be
 * terminated when they next become idle.
 *
 * @param maximumPoolSize the new maximum
 * @throws IllegalArgumentException if the new maximum is
 *         less than or equal to zero, or
 *         less than the {@linkplain #getCorePoolSize core pool size}
 * @see #getMaximumPoolSize
 */
public void setMaximumPoolSize(int maximumPoolSize) {
  if (maximumPoolSize <= 0 || maximumPoolSize < corePoolSize)
    throw new IllegalArgumentException();
  this.maximumPoolSize = maximumPoolSize;
  if (workerCountOf(ctl.get()) > maximumPoolSize)
    interruptIdleWorkers();
}

代码示例来源:origin: com.gluonhq/robovm-rt

/**
 * Sets the maximum allowed number of threads. This overrides any
 * value set in the constructor. If the new value is smaller than
 * the current value, excess existing threads will be
 * terminated when they next become idle.
 *
 * @param maximumPoolSize the new maximum
 * @throws IllegalArgumentException if the new maximum is
 *         less than or equal to zero, or
 *         less than the {@linkplain #getCorePoolSize core pool size}
 * @see #getMaximumPoolSize
 */
public void setMaximumPoolSize(int maximumPoolSize) {
  if (maximumPoolSize <= 0 || maximumPoolSize < corePoolSize)
    throw new IllegalArgumentException();
  this.maximumPoolSize = maximumPoolSize;
  if (workerCountOf(ctl.get()) > maximumPoolSize)
    interruptIdleWorkers();
}

相关文章

ThreadPoolExecutor类方法