并发编程

常用的构造并发程序的方法

  • 进程 缺点:进程间通信( IPC )比较困难,开销高,比较慢

  • I/O多路复用 select() 监控一组文件描述符在指定的时间内是否有可读、可写或异常事件发生。

    场景:假设要求你编写一个echo服务器,它也能对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应两个互相独立的1/0事件: 1) 网络客户端发起连接请求, 2) 用户在键盘上键入命令行。我们先等待哪个事件呢?没有哪个选择是理想的。如果在 accept 中等待一个连接请求,我们就不能响应输入的命令。类似地,如果在 read 中等待一个输入命令,我们就不能响应任何连接请求。

    selectepoll

  • 线程