可以使用Java的线程池来实现自动启动新线程的功能。具体步骤如下:
1. 创建一个线程池,可以使用Java提供的Executors类来创建。
2. 在Socket连接的处理代码中,添加一个循环,当满足某个条件时,调用线程池的execute方法,将任务提交给线程池处理。
3. 在任务执行的代码中,处理完任务后,调用Thread.currentThread().interrupt()方法结束当前线程。
4. 线程池会自动启动一个新的线程来处理提交的任务。
示例代码如下:
```java
ExecutorService executor = Executors.newFixedThreadPool(10);
while (true) {
Socket socket = serverSocket.accept();
Runnable task = new Runnable() {
@Override
public void run() {
try {
// 处理Socket连接
while (!condition) {
// 处理Socket数据
}
} catch (IOException e) {
e.printStackTrace();
} finally {
Thread.currentThread().interrupt(); // 结束当前线程
}
}
};
executor.execute(task); // 提交任务给线程池处理
}
```