我想知道在使用checkdnsrr检查提供的电子邮件地址的域名部分时是否存在误报的可能性?我想从注册表中检查这一点,以减少客户端的错误类型.
$hostCheck = checkdnsrr("test.org", "MX");
Run Code Online (Sandbox Code Playgroud)
checkdnsrr是"非常可靠"还是没有实际机会错过实际存在的域名?因为那时我会省略这样的检查.我很感激为什么要解释整个过程的可靠性.我已经研究过DNS(某些),但我不确定服务器是暂时脱机还是其他东西可能会产生可衡量的影响.
我有以下情况.我有一个主要在一个线程上运行的应用程序.它已经变大了,所以我想运行一个看门狗线程,只要主线程变成一个不同的代码/方法/类块,就会调用它,这样我就可以看到代码中有"运动".如果监视程序被同一区域调用超过一秒钟或几分钟,它将设置一个易失性布尔值,主线程在下一个检查点读取并终止/重新启动.现在的问题是让任何一个线程同时运行一些.一旦主线程运行,它就不会让看门狗定时器计数正确.因此,我每次调用看门狗时都会考虑屈服(所以它可以计算时间并设置值),但无济于事.使用Thread.sleep(1)而不是Thread.yield()工作.但是我不希望有几个代码区域浪费计算时间,我确信我没有按照它的意图使用它.
这是一个非常简单的示例,说明如何使用Thread.yield().我不明白为什么这里的线程不会切换(它们会在"长时间"和很大程度上不可预测的时间之后切换).请给我一个建议,告诉我如何使这个简单的例子输出ONE和TWO.就像之前写的一样,如果我用sleep(1)切换yield(),它就会像我需要它一样工作(尽管无意义地等待).
Runnable run1 = new Runnable(){
public void run(){
while(true){
System.out.println("ONE");
Thread.yield();
}
}
};
Runnable run2 = new Runnable(){
public void run(){
while(true){
System.out.println("TWO");
Thread.yield();
}
}
};
Thread tr1 = new Thread(run1);
Thread tr2 = new Thread(run2);
tr1.start();
tr2.start();
Run Code Online (Sandbox Code Playgroud)