内部有Thread.sleep(long)时,Runnable会产生内存泄漏吗?

时间:2017-12-11 19:31:14

标签: java multithreading memory runnable

当内部有Thread.sleep(long)时,Runnable会产生内存泄漏吗?

如果我将runnable置于runnable内,是否存在任何风险?

1 个答案:

答案 0 :(得分:-1)

直接回答你的问题是NO,Thread.sleep单独在runnable的run()内调用时不会产生任何内存泄漏。当堆内存中存在未从任何正在运行的代码引用的对象时,会发生 内存泄漏 。因此Thread.sleep不会创建任何引用漏洞的对象,因此不会出现内存泄漏。

回答你的第二个问题;也没有。我应该说Runnable通常不能被视为单独的Thread,Runnable是一个简单interface,它有run()方法。可以将Runnable提交给ThreadThread Pool,以便在单独的线程中执行。即使在这种情况下,仅从另一个new Thread创建和启动Thread也不会造成任何内存泄漏。