我通过一些代码去的地步,现在是不是我的。在代码中有一个与下面的代码线程:这是什么休眠线程
while (true)
{
Thread.sleep(int.MaxValue);
}
它还捕捉InterruptedException的,去右后卫进入死循环,所以循环甚至不能被打断。
有谁知道为什么这个线程会存在,有什么目的?
编辑:完整的代码,一点点更多的上下文:
using IKVM.Attributes;
using java.lang;
using System;
using System.Runtime.CompilerServices;
namespace applicationNamespace
{
internal sealed class DedicatedServerSleepThread : Thread
{
internal DedicatedServer theDecitatedServer;
[MethodImpl(MethodImplOptions.NoInlining)]
internal DedicatedServerSleepThread(DedicatedServer dedicatedServer)
{
this.theDecitatedServer = dedicatedServer;
base.setDaemon(true);
this.start();
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override void run()
{
while (true)
{
try
{
while (true)
{
System.Threading.Thread.Sleep(int.MaxValue);
}
}
catch (System.Threading.ThreadInterruptedException)
{
}
}
}
static DedicatedServerSleepThread()
{
}
}
}
注意前面的代码使用了一些非标准的库,所以小写的睡眠是有效的。特别是它使用了ikvm库(基于java标准库,并用于将java程序交叉编译为.net)
这是一个java服务器程序,我将其交叉编译为.net字节码,然后进行反编译。我不确定是否有人曾经见过一条专门用于睡觉的线程,如果是的话,原因是什么。 ta.speot.is提供了一个非常好的答案。
该码位似乎超出了上下文,因此很难猜测为什么以及发生了什么。您需要提供更多信息。 – timss 2013-04-20 01:03:56
看起来毫无意义。代码中没有任何评论或文档,是吗? – Thilo 2013-04-20 01:04:18
绝对没有用处。 – slugster 2013-04-20 01:04:27