当前位置: 首页 > 文档资料 > Swoole 内核开发 >

TCP

优质
小牛编辑
132浏览
2023-12-01

swoole所有监听的TCP端口都是在管理进程创建完毕之后才开始监听的,所以worker进程中并没有TCP的server socket。 而UDP是在管理进程创建前就开始监听,所以worker进程中是持有UDP server_socket的。

启动的顺序是:

启动主进程

php启动时,即创建了主进程。当swoole_server->start前会创建所有worker进程IPC的unix socket。

启动管理进程

启动管理进程,管理进程内又会创建worker进程和task进程。管理进程创建完worker进程后会进入wait状态。等待子进程退出事件。

启动worker/task进程

这个过程和reactor线程的创建是同时进行的,这里是并行的

worker进程内会进入epoll事件循环或者进入取队列状态。

启动reactor线程

主进程创建所有reactor线程,并开始进入epoll事件循环。