关于“php_sleep如何不阻塞”的问题,小编就整理了【4】个相关介绍“php_sleep如何不阻塞”的解答:
PHP中的sleep用法?sleep函数的作用是延迟代码执行若干秒。参数是以秒计的暂停时间。若成功执行,则返回 0,否则返回 false。
举个例子,有代码:
<?php
echo date('h:i:s') . "<br />";
//暂停10 秒
sleep(10);
//重新开始
echo date('h:i:s');
?>,执行后输出这样的结果(仅供参考,实际输出取决于你的执行时间):
12:00:08
12:00:18
nginx某个接口阻塞了会怎么样?sleep()这个函数会导致PHP解释器被阻塞,也就是会导致一个PHP-CGI进程被阻塞,如果Nginx后面只有一个PHP-CGI进程,那多个请求自然就得排队等待PHP-CGI处理了,阻塞的不是Nginx,而是PHP-CGI. Windows上Apache内有多个线程,一个线程处理一个请求,所以服务才不会阻塞.
st语言延时指令怎么用?在ST语言中,可以使用TON(通电延时)和TOF(掉电延时)指令来实现延时功能。
TON指令
TON指令用于实现通电延时功能,其语法如下:
TON(IN:=in, PT:=pt, Q=>q, ET=>et);
其中,in为输入引脚,pt为定时时间,q为输出引脚,et为当前累计时间。当输入引脚in为TRUE时,定时器开始计时,当累计时间et等于定时时间pt时,输出引脚q变为TRUE。
例如,以下代码实现了一个通电延时3秒的功能:
TON(IN:=xIn, PT:=T#3S, Q=>xOut, ET=>xET);
TOF指令
TOF指令用于实现掉电延时功能,其语法如下:
TOF(IN:=in, PT:=pt, Q=>q, ET=>et);
其中,in为输入引脚,pt为定时时间,q为输出引脚,et为当前累计时间。当输入引脚in为FALSE时,定时器开始计时,当累计时间et等于定时时间pt时,输出引脚q变为FALSE。
例如,以下代码实现了一个掉电延时3秒的功能:
TOF(IN:=NOT xIn, PT:=T#3S, Q=>xOut, ET=>xET);
需要注意的是,定时器的输入引脚要放在赋值符号左边,输出引脚要放在赋值符号的右边。另外,定时器尽量不要在IF内调用,通过IF控制它的触发条件。IF相当于置位,当IF判断条件为FALSE的时候也不能复位定时器,必须有个条件给定期器触发的引脚赋值FALSE才可以使其复位。
yield和sleep描述不正确?sleep的作用是让当前线程休眠(正在执行的线程主动让出cpu,然后cpu就可以去执行其他任务),即当前线程会从“运行状态”进入到“休眠(阻塞)状态”,sleep方法只是让出了cpu的执行权,并不会释放同步资源锁。
yield的作用是让步,它能够让当前线程从“运行状态”进入到“就绪状态”,从而让其他等待线程获取执行权,但是不能保证在当前线程调用yield之后,其他线程就一定能获得执行权,也有可能是当前线程又回到“运行状态”继续运行。
到此,以上就是小编对于“php_sleep如何不阻塞”的问题就介绍到这了,希望介绍关于“php_sleep如何不阻塞”的【4】点解答对大家有用。