导航:首页 > 编程语言 > phpsleep原理

phpsleep原理

发布时间:2023-06-05 13:39:40

⑴ 关于php的sleep()函数导致的问题

但是同时两次访问index1.php,第二个需要等第一个完成之后再等20秒才能正常显示,即第二个页面需要等40s才能正常显示

--------------------------------------
你是怎么同时2次访问index1.php的?

即第二个页面需要等40s才能正常显示
------------------------------------------
第二个页面也是index1?

⑵ php sleep 会不会把服务器卡死

sleep不占用系统资源,它会把cpu的控制权交换给内核,内核会再schele到另一个进程。
这种简单的事情,你写个while (true) sleep(1)的程序然后top一下就能判断的。

⑶ PHP当中的 sleep()函数问题

同学,你要先理解php是在服务器端执行的
你的这个结果,却是被客户端浏览器解析的

所以,服务器执行了 输出1 睡眠3 输出2 用时3秒
然后返回了最终的结果

而,同时,浏览器是不能用html来动态显示内容的
你需要使用ajax
处理逻辑是:
ajax 控制js向服务器发报,服务器返回显示时间的页面,页面用js动态加入div中
这个过程用js控制,每3秒自调用一次
即是在js function中添加setTimeout( "方法名() ", 3000);

当然,还有另外一个方法,上面的方法能获得的是服务器端的时间,下面这个则是客户端的时间,处理逻辑如下:
和上个方法一样,写一个js的3秒间隔自调用函数,然后该函数会改变某个div的值,值显示为当前时间。

其实还有个方法,使用js每隔3秒来刷新当前页面。

但无论哪种方法 都用不到sleep

⑷ php discuz的定时任务是什么原理怎么实现的求高手解答

php中定时计划任务的实现原理:
当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。

示例代码:

<?php
ignore_user_abort(true);set_time_limit(0);
date_default_timezone_set('PRC'); // 切换到中国的时间

$run_time = strtotime('+1 day'); // 定时任务第一次执行的时间是明天的这个时候
$interval = 3600*12; // 每12个小时执行一次

if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了

do {
if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用
$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒
$loop = isset($loop) && $loop ? $loop : $run_time - $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔
$loop = $loop > 0 ? $loop : 0;
if(!$loop) break; // 如果循环的间隔为零,则停止
sleep($loop);
// ...
// 执行某些代码
// ...
@unlink(dirname(__FILE__).'/cron-run'); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务
$loop = $interval;
} while(true);

⑸ PHP中的sleep用法

<?php echo date('h:i:s') . "<br />"; //暂停 10 秒

sleep(10);//重新开始

echo date('h:i:s'); ?>

输出:

15:00:08 15:00:18

⑹ php中sleep()函数会不会大量销号系统内存或者CPU

会。
正常情况下php以最快速度执行完脚本,将执行结果传给浏览器。你要考虑有很多用户访问你网站的情况,因为执行脚本的时候被sleep了,导致每个用户浏览网页的时候php都需要更长的时间去执行你的脚本,而脚本执行完毕之前内存是一直被php引擎占用的。所以当访问用户多的时候,就会导致有很多php引擎的实例同时运行,占用很多内存,但是这些php引擎却受到脚本的指使而在那边sleep(说得粗俗一点就是占着茅坑不拉屎)(正常情况下是执行完以后内存就释放了)。就好像八行道的大马路,如果只有一个司机车子停在中间然后睡觉,其他道路暂时还能通;但是如果有八辆车的司机并排停在路中间睡觉,这马路就不要想畅通了
cpu的话……好像影响不大,最多就是操作系统在调度进程线程的时候要多检查几个而已,没感觉。

⑺ php是单线程的,那么sleep函数是如何实现自动结束挂起的

sleep函数会导致当前服务的进程睡眠挂起。注意是当前服务的进程。因为服务器可以配置多个php进程同时提供解析服务。
另外PHP也可以使用pthread扩展实现多线程编程

阅读全文

与phpsleep原理相关的资料

热点内容
电影名卧布吉岛 浏览:160
泰国肉肉电影 浏览:499
电影无处可逃结局是什么 浏览:102
压缩性模量 浏览:352
平安老师讲解压力化解 浏览:459
快递员的电影是什么名字 浏览:780
日本电影叫什么鱼的名字 浏览:663
找书pdf 浏览:392
高水平应届程序员有前途吗 浏览:79
哪个视频网站可以投屏还免费 浏览:283
好看爱情网 浏览:304
泰国电影女主叫小草 浏览:543
模具设计的命令如何用 浏览:990
华为云桌面服务器多少钱一台 浏览:271
木工数控刀具路径编程 浏览:275
用电脑看高清电影在哪里看 浏览:242
老外从墙壁穿越的电影 浏览:813
下人电影完整版下载 浏览:589
云服务器下载服务 浏览:241