【发布时间】:2013-02-17 06:50:51
【问题描述】:
如果这个问题听起来很愚蠢,请原谅我 - 我刚刚开始使用 Executor。
我有一个以这种方式使用线程的现有 java 应用程序——基本上使用独立线程——
private Thread spawnThread( )
{
Thread t = new Thread()
{
String taskSnap = task.toString();
public void run()
{
try
{
println( task.run( null ) );
}catch( InterruptedException e )
{
println( "ITC - " + taskSnap + " interrupted " );
}
}
};
return t;
}
从上面可以看出,该函数返回一个新线程。
现在在程序的main()函数中,以这种方式创建了一个新线程--
taskThread = spawnThread();
taskThread.start();
我想要做的是,创建一个执行器服务(具有固定数量的线程)-->然后将新线程的新线程的创建/任务的执行交给该执行器。
由于我是 Executor 的新手,我想知道的是,如何更改上面的代码,以便在线程池中创建一个新线程,而不是形成一个新的单独线程。我看不到任何创建线程的命令(在线程池中)--> 将上述任务交给该线程(而不是像上面那样交给独立线程)。
请告诉我如何解决这个问题。
【问题讨论】:
-
将线程的“运行”部分包装在一个可运行接口中。创建一个 executor 并提供 Runnable 给它。查看Executor 线索了解更多信息
标签: java multithreading threadpool executorservice