org.apache.tomcat.util.threads.ThreadPoolExecutor类的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(8.0k)|赞(0)|评价(0)|浏览(626)

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

ThreadPoolExecutor介绍

[英]Same as a java.util.concurrent.ThreadPoolExecutor but implements a much more efficient #getSubmittedCount() method, to be used to properly handle the work queue. If a RejectedExecutionHandler is not specified a default one will be configured and that one will always throw a RejectedExecutionException
[中]和java一样。util。同时发生的ThreadPoolExecutor,但实现了一个更高效的#getSubmittedCount()方法,用于正确处理工作队列。如果未指定RejectedExecutionHandler,则将配置默认的处理程序,并且该处理程序将始终抛出RejectedExecutionException

代码示例

代码示例来源:origin: codefollower/Tomcat-Research

/**
 * {@inheritDoc}
 */
@Override
public void execute(Runnable command) {
  execute(command,0,TimeUnit.MILLISECONDS);
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

public int getCorePoolSize() {
  return (executor != null) ? executor.getCorePoolSize() : 0;
}

代码示例来源:origin: codefollower/Tomcat-Research

@Override
public boolean offer(Runnable o) {
 //we can't do any checks
  if (parent==null) return super.offer(o);
  //we are maxed out on threads, simply queue the object
  if (parent.getPoolSize() == parent.getMaximumPoolSize()) return super.offer(o);
  //we have idle threads, just add it to the queue
  if (parent.getSubmittedCount()<(parent.getPoolSize())) return super.offer(o);
  //if we have less threads than maximum force creation of a new thread
  if (parent.getPoolSize()<parent.getMaximumPoolSize()) return false;
  //if we reached here, we need to add it to the queue
  return super.offer(o);
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

@Override
public boolean resizePool(int corePoolSize, int maximumPoolSize) {
  if (executor == null)
    return false;
  executor.setCorePoolSize(corePoolSize);
  executor.setMaximumPoolSize(maximumPoolSize);
  return true;
}

代码示例来源:origin: codefollower/Tomcat-Research

@Override
public void execute(Runnable command) {
  if ( executor != null ) {
    try {
      executor.execute(command);
    } catch (RejectedExecutionException rx) {
      //there could have been contention around the queue
      if ( !( (TaskQueue) executor.getQueue()).force(command) ) throw new RejectedExecutionException("Work queue full.");
    }
  } else throw new IllegalStateException("StandardThreadPool not started.");
}

代码示例来源:origin: org.ops4j.pax.tipi/org.ops4j.pax.tipi.tomcat-embed-core

public void contextStopping() {
  this.lastContextStoppedTime.set(System.currentTimeMillis());
  // save the current pool parameters to restore them later
  int savedCorePoolSize = this.getCorePoolSize();
  TaskQueue taskQueue =
      getQueue() instanceof TaskQueue ? (TaskQueue) getQueue() : null;
  if (taskQueue != null) {
    // note by slaurent : quite oddly threadPoolExecutor.setCorePoolSize
    // checks that queue.remainingCapacity()==0. I did not understand
    // why, but to get the intended effect of waking up idle threads, I
    // temporarily fake this condition.
    taskQueue.setForcedRemainingCapacity(Integer.valueOf(0));
  }
  // setCorePoolSize(0) wakes idle threads
  this.setCorePoolSize(0);
  // TaskQueue.take() takes care of timing out, so that we are sure that
  // all threads of the pool are renewed in a limited time, something like
  // (threadKeepAlive + longest request time)
  if (taskQueue != null) {
    // ok, restore the state of the queue and pool
    taskQueue.setForcedRemainingCapacity(null);
  }
  this.setCorePoolSize(savedCorePoolSize);
}

代码示例来源:origin: com.ovea.tajin.servers/tajin-server-jetty9

/**
 * Start the component and implement the requirements
 * of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
 *
 * @exception LifecycleException if this component detects a fatal error
 *  that prevents this component from being used
 */
@Override
protected void startInternal() throws LifecycleException {
  taskqueue = new TaskQueue(maxQueueSize);
  TaskThreadFactory tf = new TaskThreadFactory(namePrefix,daemon,getThreadPriority());
  executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), maxIdleTime, TimeUnit.MILLISECONDS,taskqueue, tf);
  if (prestartminSpareThreads) {
    executor.prestartAllCoreThreads();
  }
  taskqueue.setParent(executor);
  setState(LifecycleState.STARTING);
}

代码示例来源:origin: org.apache.geronimo.ext.tomcat/catalina

public void shutdownExecutor() {
  if ( executor!=null && internalExecutor ) {
    if ( executor instanceof ThreadPoolExecutor ) {
      //this is our internal one, so we need to shut it down
      ThreadPoolExecutor tpe = (ThreadPoolExecutor) executor;
      tpe.shutdownNow();
      TaskQueue queue = (TaskQueue) tpe.getQueue();
      queue.setParent(null);
    }
    executor = null;
  }
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

/**
 * Start the component and implement the requirements
 * of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
 *
 * @exception LifecycleException if this component detects a fatal error
 *  that prevents this component from being used
 */
@Override
protected void startInternal() throws LifecycleException {
  taskqueue = new TaskQueue(maxQueueSize);
  TaskThreadFactory tf = new TaskThreadFactory(namePrefix,daemon,getThreadPriority());
  executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), maxIdleTime, TimeUnit.MILLISECONDS,taskqueue, tf);
  executor.setThreadRenewalDelay(threadRenewalDelay);
  if (prestartminSpareThreads) {
    executor.prestartAllCoreThreads();
  }
  taskqueue.setParent(executor);
  setState(LifecycleState.STARTING);
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

@Override
public int getActiveCount() {
  return (executor != null) ? executor.getActiveCount() : 0;
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

@Override
public int getPoolSize() {
  return (executor != null) ? executor.getPoolSize() : 0;
}

代码示例来源:origin: codefollower/Tomcat-Research

public void createExecutor() {
  internalExecutor = true;
  TaskQueue taskqueue = new TaskQueue();
  TaskThreadFactory tf = new TaskThreadFactory(getName() + "-exec-", daemon, getThreadPriority());
  executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), 60, TimeUnit.SECONDS,taskqueue, tf);
  taskqueue.setParent( (ThreadPoolExecutor) executor);
}

代码示例来源:origin: codefollower/Tomcat-Research

/**
 * Stop the component and implement the requirements
 * of {@link org.apache.catalina.util.LifecycleBase#stopInternal()}.
 *
 * @exception LifecycleException if this component detects a fatal error
 *  that needs to be reported
 */
@Override
protected void stopInternal() throws LifecycleException {
  setState(LifecycleState.STOPPING);
  if ( executor != null ) executor.shutdownNow();
  executor = null;
  taskqueue = null;
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

public void contextStopping() {
  if (executor != null) {
    executor.contextStopping();
  }
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

public void setMinSpareThreads(int minSpareThreads) {
  this.minSpareThreads = minSpareThreads;
  if (executor != null) {
    executor.setCorePoolSize(minSpareThreads);
  }
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

public long getCompletedTaskCount() {
  return (executor != null) ? executor.getCompletedTaskCount() : 0;
}

代码示例来源:origin: org.apache.tomcat/tomcat-catalina

public int getQueueSize() {
  return (executor != null) ? executor.getQueue().size() : -1;
}

代码示例来源:origin: org.apache.geronimo.ext.tomcat/catalina

@Override
public void execute(Runnable command) {
  if ( executor != null ) {
    try {
      executor.execute(command);
    } catch (RejectedExecutionException rx) {
      //there could have been contention around the queue
      if ( !( (TaskQueue) executor.getQueue()).force(command) ) throw new RejectedExecutionException("Work queue full.");
    }
  } else throw new IllegalStateException("StandardThreadPool not started.");
}

代码示例来源:origin: codefollower/Tomcat-Research

int savedCorePoolSize = this.getCorePoolSize();
TaskQueue taskQueue =
    getQueue() instanceof TaskQueue ? (TaskQueue) getQueue() : null;
if (taskQueue != null) {
this.setCorePoolSize(0);
this.setCorePoolSize(savedCorePoolSize);

代码示例来源:origin: org.apache.catalina/com.springsource.org.apache.catalina

/**
 * Start the component and implement the requirements
 * of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
 *
 * @exception LifecycleException if this component detects a fatal error
 *  that prevents this component from being used
 */
@Override
protected void startInternal() throws LifecycleException {
  taskqueue = new TaskQueue(maxQueueSize);
  TaskThreadFactory tf = new TaskThreadFactory(namePrefix,daemon,getThreadPriority());
  executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), maxIdleTime, TimeUnit.MILLISECONDS,taskqueue, tf);
  if (prestartminSpareThreads) {
    executor.prestartAllCoreThreads();
  }
  taskqueue.setParent(executor);
  setState(LifecycleState.STARTING);
}

相关文章