我正在更新一些我很久没有接触过的旧 Java 代码。我的问题与现在做线程池的最佳方法是什么有关?
以前我使用了并发工具类的:
import EDU.oswego.cs.dl.util.concurrent.BoundedBuffer;
import EDU.oswego.cs.dl.util.concurrent.PooledExecutor;
但是,我认为这不是最好的方式,因为我现在正在更新到 Java 7。
这是我的代码片段:
Static PooledExecuter pooledExecuter = null;
……
private ThreadPoolExample(Int initialCapactiy, int initThreadPoolSize,
int maxThreadPoolSize, int minThreadPoolSize,
int time) throws Exception
{
pooledExecuter = new PooledExecuter(new BoundedBuffer(initialCapactiy), maxThreadPoolSize);
pooledExecuter.setMinimumPoolSize(minThreadPoolSize);
pooledExecuter.setKeepAliveTime(1000 * time);
pooledExecuter.waitWhenBlocked();
pooledExecuter.createThreads(initThreadPoolSize)
//setup thread
this.thread = new Thread(this);
this.thread.setName("threadtest");
try
{
this.thread.setDaemon(this)
}
catch (Exception e)
{
}
}
在我的运行方法中,我还调用了 pooledExecuter.execute(new TestClass)
基本上,我想知道我现在应该用哪种方式来做我的线程池?
任何帮助将不胜感激。