epoll/kqueue 异步阻塞/非阻塞模型 $socket = stream_socket_server ('tcp://0.0.0.0:2000', $errno, $errstr); stream_set_blocking($socket, 0); $base = event_base_new(); $event = event_new(); event_set($event, $socket, EV_REA…
select/poll 同步非阻塞IO模型 $socket = socket_create_listen(8000) or die("create server failed"); socket_set_nonblock($socket); $read = array(); while (1) { $read = array_merge($read, array($socket)); $write = array()…
阻塞与非阻塞 阻塞与非阻塞是针对服务端来说的 阻塞IO是指调用结果返回之前,当前进程/线程会被挂起; 非阻塞是指在不能立刻得到结果之前,该函数不会阻塞当前进程/线程,而会立刻返回。 同步与异步 同步与异步是针对客户端来说的 同步是发出一个请求后,在没有得到结果之前,该请求就不返回; 异步是发送一个请求后,请求者不能立刻得到结果,等到请求处理完成后,通过状态、通知和回调来通知请求者。 多路复用:能同时处理多个连接模型称…
php队列依赖于Linux的消息队列特性 Linux使用msgget,msgsnd,msgrcv,msgctl,分别用于创建/获取消息队列,发送数据,接收数据,设置/获取消息队列 php对应的函数为msg_get_queue,msg_send,msg_receive,msg_set_queue php必须在configure时加入–enable-sysvmsg来开启队列功能 多进程处理socket队列 $msg_ke…
php多进程核心 1.创建一个子进程 $pid = pcntl_fork(); //父进程和子进程都会执行下面代码 if ($pid > 0) { //父进程会得到子进程号,所以这里是父进程执行的逻辑 pcntl_wait($status); //等待子进程中断,防止子进程成为僵尸进程 } elseif ($pid == 0) { //子进程得到的$pid为0, 所以这里是子进程执行的逻辑 } else { /…
一个普通的foreach $arr = array(‘a’,’b’,’c’); foreach ($arr as $key=> $value) { echo $key, $value; } 在foreach遍历过程中,并不是直接操作原数组($arr),而是将原数组($arr)复制一份出来(为方便描述暂命名为$arrcopy)(此时$arr和$arrcopy共用同一块内存),foreach在遍历过程中,操作的其实…
传统开发中,当需要用到Foo类的时候,就会创建Foo类并调用Foo类里的函数,假如这个函数中需要调用Bar类的函数,就在Foo类的函数中创建Bar类实例,并调用Bar类的函数,而如果还需要在Bar的函数中调用Bim类的函数,就在Bim类中创建Bar类实例并调用Bar中的函数 class Bim { public function doSomething() { echo __METHOD__, '|'; } } cl…
<?php interface Ia { public function a(); } class Ca implements Ia { public function a() { echo 123; } } class Cc implements Ia { public function a() { echo 222; } } class Cb { protected $na; public function…
php CI框架404错误 nginx 和php 使用普通用户www运行。 1、由CI框架返回的404 CI框架中都会设置;如果访问的文件不存在,由CI框架生成相应的页面,返回给用户。 如果这个请求,不是开发的程序接口,CI框架就会返回404错误。 如果访问的文件,www没有权限访问,也会由CI框架返回404错误。 2、由nginx返回的404 如果请求的文件在nginx中被某个location匹配;文件没有找到,并…
1、URL 辅助函数 URL 辅助函数文件包含了一些帮助你处理 URL 的函数。 重定向函数: redirect($uri = '', $method = 'auto', $code = NULL) 参数: $uri (string) -- URI string $method (string) -- Redirect method ('auto', 'location' or 'refresh') $code (s…