你的这个结果,唯激租却是被客户端浏览器解析的
所以,服务器执行了 输出1 睡眠3 输出2 用时3秒
然后返回了最终的结果
而,同时,浏览器是不能用html来动态显示内容的
你需要使用ajax
处理逻辑是:
ajax 控制js向服务器发报,服务器返回显示时间的页面,页面用js动态加入div中
这个过程用js控制,每3秒自调用一次
即是在js function中添加setTimeout( "方法名() ", 3000)
当然,还有另外一个方法,上面的方法能获得的是服务器端的时间,下面这个则是客户端的时间,处理逻辑如下:
和上个方法一样,写一个js的3秒间隔自调指兆用函数,然后该函数会改变某个div的值,值显示为当前时间。
其实还有个方法,使用js每隔3秒来刷新当前页面。
但无论哪种方法 都用不到sleep
sleep函数会导致当前服务的进程睡眠挂起。注意是当前服务的进程段搏。因为服务器可以配置多个php进程同时握兄祥提供解析服务。另外PHP也可以使尘瞎用pthread扩展实现多线程编程。
Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态。处于这个状态的进程因为等待某某事件的发生(比如等待socket连接、等待信号量),而被挂起。这些进程的task_struct结构被放入对应事件的等待队列中。当这些事件发生时(由外部中断触发、或由其他进程触发),对应的等待队列中的一个或多个进程将被唤醒。
通过ps命令我们会看到,一般情况下,进程列表中的绝大多数进程都处于TASK_INTERRUPTIBLE状态(除非机器的负载很高)。手乎毕竟CPU就这么一两个,进程动辄几十上百个,如果不是绝大多数进程都在睡眠,茄薯启CPU又怎么响应得过来。
所以说处于S状态是ok的,只有在run的时候才会处于R状态。颤如
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)