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事件循环。