2 chaobaby94 ChaoBaby94 于 2016.01.29 13:15 提问

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()的内存?如果不会,要怎样释放?

3个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.29 13:29
已采纳

这里不存在你说的内存释放问题吧,你开启的线程执行完成后就销毁了,而此轮循环中创建的对象如果没有再被引用的时候,它的内存会自动被垃圾回收器回收的。

rui888
rui888   Ds   Rxr 2016.01.29 13:20
bdmh
bdmh   Ds   Rxr 2016.01.29 13:28

如果任务里执行完,就会自动结束线程,除非你线程里面是while死循环,那样就不行了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!