创建主线程
Thread desktopServerThread = new Thread(new Server());
desktopServerThread.start();
public class Server implements Runnable {
public void run() {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4321);
while (true) {
Socket socket = serverSocket.accept();
/* 监听到客户端访问,则创建线程提供服务 */
ServerWorker worker = new ServerWorker(socket);
new Thread(worker).start();
}
}
class ServerWorker implements Runnable {
private String result = "";
private Socket socket = null;
ServerWorker(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
执行操作。。。。。。。。
}
}
问题:
1:我的主线程接到访问后,会创建多个线程来提供服务吗?
2:创建的多个线程后,系统会自动回收吗? 如果访问过多的话,,怎么处理???
[quote]1:我的主线程接到访问后,会创建多个线程来提供服务吗?[/quote]
是的,server端的线程一直处于阻塞状态,每来一个客户端的请求就会创建一个子线程去run
[quote]2:创建的多个线程后,系统会自动回收吗? 如果访问过多的话,,怎么处理???[/quote]
一个线程对象跑结束后,系统会自动回收的。访问过多,你可以利用ThreadPool线程池来处理更多的并发请求