问题描述
- Java关于死循环创建对象释放内存的问题
-
代码:
while(true){//2.
Socket s = ss.accept();
// Thread updateThread = new Thread(new UpdateTask(s));
// updateThread.start();//开启线程
// -- 使用线程池 --
threadPool.execute(new UpdateTask(s));
}
上面代码每次new UpdateTask();但是没跳出循环,java每次执行完一个Runnable任务后会不会释放UpdateTask()的内存?如果不会,要怎样释放?
解决方案
这里不存在你说的内存释放问题吧,你开启的线程执行完成后就销毁了,而此轮循环中创建的对象如果没有再被引用的时候,它的内存会自动被垃圾回收器回收的。
解决方案二:
http://blog.csdn.net/jdsjlzx/article/details/6652778
解决方案三:
如果任务里执行完,就会自动结束线程,除非你线程里面是while死循环,那样就不行了
时间: 2024-10-25 02:40:14