学习Swoole需要掌握哪些基础知识
最后更新于:2022-04-02 06:19:24
# 学习Swoole需要掌握哪些基础知识
[TOC]
## 多进程/多线程
* 了解`Linux`操作系统进程和线程的概念
* 了解`Linux`进程/线程切换调度的基本知识
* 了解进程间通信的基本知识,如管道、`UnixSocket`、消息队列、共享内存
## SOCKET
* 了解`SOCKET`的基本操作如`accept/connect`、`send/recv`、`close`、`listen`、`bind`
* 了解`SOCKET`的接收缓存区、发送缓存区、阻塞/非阻塞、超时等概念
## IO复用
* 了解`select`/`poll`/`epoll`
* 了解基于`select`/`epoll`实现的事件循环,`Reactor`模型
* 了解可读事件、可写事件
## TCP/IP网络协议
* 了解`TCP/IP`协议
* 了解`TCP`、`UDP`传输协议
## 调试工具
* 使用[gdb](https://wiki.swoole.com/wiki/page/p-gdb.html)调试`Linux`程序
* 使用[strace](https://wiki.swoole.com/wiki/page/p-strace.html)跟踪进程的系统调用
* 使用[tcpdump](https://wiki.swoole.com/wiki/page/p-tcpdump.html)跟踪网络通信过程
* 其他`Linux`系统工具,如ps、[lsof](https://wiki.swoole.com/wiki/page/p-lsof.html)、top、vmstat、netstat、sar、ss等
';