
php现有的运用体式格局都是基于http的,关于须要疾速及时相应的状况比较乏力,比方网络游戏或许推送效劳平常都须要与用户长期保持一个tcp衔接以便及时相应和推送信息。
swoole就是处置惩罚如许运用场景的。 (引荐进修: swoole视频教程)
Swoole的完成
swoole运用纯C编写,不依靠其他第三方库。
swoole并没有效libevent,所以不须要装置libevent
swoole并不依靠php的stream/sockets/pcntl/posix/sysvmsg等扩大
socket部份
swoole运用底层的socket体系挪用。
IO事宜轮回
主历程的事宜轮回运用select/poll,由于主线程中的文件描述符只要几个,运用select/poll即可
reactor线程/worker历程中运用epoll/kqueue
task历程没有事宜轮回,历程会轮回壅塞读取管道
有很多人运用strace -p去检察swoole主历程只能看到poll体系挪用。准确的检察要领是strace -f -p
多历程/多线程
多历程运用fork()体系挪用
多线程运用pthread线程库
EventFd
Swoole中运用了eventfd作为线程/历程间音讯关照的机制。
Timerfd
Swoole运用timerfd来完成定时器
SIgnalfd
swoole中运用了signalfd来完成对信号的屏障和处置惩罚。能够有效地防止线程/历程被信号打断,体系挪用restart的问题。在主历程中reactor线程不会接收任何信号。
以上就是swoole处置惩罚了什么问题的细致内容,更多请关注ki4网别的相干文章!