【发布时间】:2012-03-26 12:35:51
【问题描述】:
我有一个带主线程的类
public class MainThread extends Thread
{
private final Socket s;
public MainThread(final Socket s)
{
this.s = s;
}
public void start()
{ // some logic
}
}
和带有线程池的类
public final class MainListener extends Thread
{
private Socket ss;
public MainListener(final int socket)
{
this.socket = socket;
this.pool = new ThreadPoolExecutor(
2,
4,
1000L,
TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
}
public void start()
{
final ServerSocket ss = new ServerSocket(socket);
while(true)
{
final Socket s = ss.accept();
pool.execute(new MainThread(s));
}
}
MainThread 已创建但未启动。它正在“等待”。
问题是什么?创建后如何启动该线程?
如果我像
public MainThread(final Socket s)
{
this.s = s;
start();
}
然后一切正常。但这是错误的
【问题讨论】:
标签: java multithreading sockets threadpool pool