使用JRE6(Windows XP上为SUN VM)时,getLocalhost()有时会冻结。
有趣的是,如果在Eclipse的调试器中,它不会冻结。我使用老式的println将其范围缩小到单个getLocalhost()调用。我看到的代码没有什么特别的。
还有其他人看到过这个问题吗?
最佳答案
您没有指定冻结的时间...或者您是说完全冻结,永不返回。
如果本地主机名(从JNI调用返回)不是“ localhost”,则使用InetAddress.getAddressFromNameService()解析本地名的IP地址。可以想象,这是一个DNS调用,可能会在未指定的时间范围内阻塞查找和访问名称服务器的时间。