关于线程的问题

weixin_45903317 2021-03-30 03:52:01
while(true){
try {
Socket socket = serverSocket.accept();
socketArrayList.add(socket);
System.out.println("客户端 " + socket.getInetAddress().getHostAddress() + "连接成功!");
//为这个循环内加入的客户端开启一对线程


ServerSend serverSend = new ServerSend(socket,socketArrayList);
Thread thread = new Thread(serverSend);
ServerGet serverGet=new ServerGet(socket,socketArrayList);
Thread thread2 = new Thread(serverGet);



thread2.start();
thread.start();

}catch(IOException e){
e.printStackTrace();
}

请问while循环开启新的线程后,之前的线程还存在么?
...全文
231 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰思雨 2021-04-09
  • 打赏
  • 举报
回复
引用 楼主 weixin_45903317 的回复:
请问while循环开启新的线程后,之前的线程还存在么?
还会存在。 之前开启的线程,它的声明周期是看它的 run 方法是否返回或者抛出异常,如果没有返回或抛出异常,它就会一直存在。 可以通过 Runtime 对象来查看当前 JVM 中的所有线程,里面应该可以找到之前创建的线程,只有它的 run 方法没有返回或抛出异常。
=PNZ=BeijingL 2021-04-09
  • 打赏
  • 举报
回复
主线程还存在,且继续执行下一条代码
杀猪剑客 2021-03-31
  • 打赏
  • 举报
回复
主线程肯定存在的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧