Php 可以同时运行3行代码吗?
此代码:Php 可以同时运行3行代码吗?,php,multithreading,process,Php,Multithreading,Process,此代码: $ip1 = `/usr/bin/dig $host1`; $ip2 = `/usr/bin/dig $host2`; $ip3 = `/usr/bin/dig $host3`; 一个接一个地跑。问题在于挖掘响应速度是随机的。它可能很快,也可能超过10秒。我的问题是如何在同一页上同时运行这3行代码 我愿意接受其他方法,比如在3个不同的页面上运行。我有一个array\u块($input\u array,3)$input_array是mysql查询的结果,它包含我可以在上面3种不同的查找
$ip1 = `/usr/bin/dig $host1`;
$ip2 = `/usr/bin/dig $host2`;
$ip3 = `/usr/bin/dig $host3`;
一个接一个地跑。问题在于挖掘响应速度是随机的。它可能很快,也可能超过10秒。我的问题是如何在同一页上同时运行这3行代码
我愿意接受其他方法,比如在3个不同的页面上运行。我有一个array\u块($input\u array,3)
$input_array
是mysql查询的结果,它包含我可以在上面3种不同的查找中运行的值。我将查询分为3部分。现在的问题是,我不知道如何将3个部分发送到3个不同的页面并运行挖掘查找。我只知道如何使用表单。这就是我向您展示上述代码的原因。我现在一片空白
请帮帮我。提前感谢。试试上面第二条评论中提供的想法:
据我所知,PHP没有多线程,但这是一种将每个线程作为后台进程运行的方法。如果它在一个页面中运行,您也可以尝试使用Ajax,使用一些javascript库,这可以非常容易地实现 以下是jquery中ajax使用的文档
只要使用exec(),就可以在后台运行shell命令,并将第三个参数指向文件或其他输出流,否则PHP将在运行下一行代码之前等待命令完成运行
这不是多线程,而且,您尝试在域名服务器上运行3次查找,根据每台主机、NS服务器或主机文件的缓存时间,速度可能会有所不同 但如果我理解,您可以使用shell批处理实现您想要的:
$ dig uol.com.br; dig aol.com; dig nytimes.com
或者更好,因为dig支持它:
$ dig uol.com.br aol.com nytimes.com
这将使用一个命令行(与“;”连接)同时进行3次查找
要实现此功能,请使用阵列:
$hosts[] = 'aol.com';
$hosts[] = 'uol.com.br';
$hosts[] = 'nytimes.com';
passthru('dig '.implode(' ',$hosts));
希望这能有所帮助有两种方法
@MarkBaker就是其中之一。我的观点是正确的——我今天学到的新知识在这10秒内你希望你的应用程序做什么?@webbiedave:这只是一个例子。我可能需要查找100个或更多的名称服务器。而不是一个接一个地查找,我在想也许可以将它分成10个部分,同时运行10个挖掘查找。这比在一个挖掘查询上运行100次查找要快。但是不是所有的查找都是按顺序进行的吗?这是如何改变的?虽然这可以从理论上回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。