当内部有Thread.sleep(long)时,Runnable会产生内存泄漏吗?
如果我将runnable置于runnable内,是否存在任何风险?
答案 0 :(得分:-1)
直接回答你的问题是NO,Thread.sleep
单独在runnable的run()
内调用时不会产生任何内存泄漏。当堆内存中存在未从任何正在运行的代码引用的对象时,会发生 内存泄漏 。因此Thread.sleep
不会创建任何引用漏洞的对象,因此不会出现内存泄漏。
回答你的第二个问题;也没有。我应该说Runnable
通常不能被视为单独的Thread
,Runnable是一个简单interface
,它有run()
方法。可以将Runnable
提交给Thread
或Thread Pool
,以便在单独的线程中执行。即使在这种情况下,仅从另一个new Thread
创建和启动Thread
也不会造成任何内存泄漏。