随笔分类 - 并发程序设计
本单元主要记录并发程序设计的所有方法,相关知识和各种方法间的对比
摘要:注:看到一篇讲解epoll原理的文章,写得非常详细,建议阅读:epoll实现原理 之前分别记录了epoll(并发程序设计3:多路IO复用技术(2)),select和poll(并发程序设计2:多路IO复用技术(1))的用法,本节比较一下它们各自的特点。 1. select和poll的不同 (1) se
阅读全文
摘要:本节记录Windows下与epoll类似的机制IOCP(input outpout completion port)。对于单台电脑的多TCP连接请求,IOCP和epoll是比较好的选择。因为IOCP会用到重叠IO的一些函数,因此先记录重叠IO。 1. 重叠IO 1.1 关键函数 由于IOCP的使用会
阅读全文
摘要:PS:在开始Windows下异步IO之前,需要了解一些重要概念。 (1)内核对象,句柄和线程ID:操作系统为了记录并管理某一类资源,如进程,线程,文件,会创建记录相关资源信息的内部数据结构,称为内核对象(如管理进程的进程控制块PCB);句柄是Windows下为了管理内核对象提供的可访问内核对象的一种
阅读全文
摘要:注:关于进程间通信机制也可以参考https://www.jianshu.com/p/206a95ed784f。总结很全面,本文更侧重理解和细节问题。 多个进程之间通信,实际上是内核提供一定缓冲区,进程通过该缓冲区交换数据。内核提供的这种机制即进程通信机制(Interprocess Communica
阅读全文
摘要:上一节实现了基于epoll的IO复用并发程序控制,本节记录基于多线程的并发程序设计。 1. 线程和进程 进程是具有独立功能的程序关于某个数据集合的一次运行活动,是系统资源管理资源分配的基本单位,而线程是进程中代码的一个执行流,是系统调度的基本单位(虽然这句话很常见,但是就用户级线程和内核级线程而言似
阅读全文
摘要:上一节(https://www.cnblogs.com/yuanwebpage/p/12362876.html)记录了多路IO复用的第一种方式select函数,以及其相应的缺点。本节记录多路IO复用的第二种方式epoll(在windows系统下叫IOCP)。 1. epoll相关函数 epoll函数
阅读全文
摘要:上一节https://www.cnblogs.com/yuanwebpage/p/12361275.html记录了多进程并发程序,除了已经描述的缺点,考虑服务器端一直在调用accept函数结束客户端请求,所以没办法进行其他响应,如响应用户的输入/输出。而多路IO复用除了能同时执行一种IO的多个操作,
阅读全文
摘要:在并发程序设计中,主要有三种并发方式:多进程并发,基于IO复用并发,多线程并发。本节主要介绍多进程并发。以多客户端ehco程序为例。 1. 进程 进程是具有独立功能的程序关于某个数据集合的一次运行活动,是OS为正在运行的程序建立的管理实体,是系统资源管理与分配的基本单位。一个进程有五部分:操作系统管
阅读全文

浙公网安备 33010602011771号