标签:并发 控制 应用 width 使用 概念 算法 物理 logs
特点: 是一个基于libev的并发库 它为各种并发和网络相关的任务提供了整洁的API 基于libev的高效时间循环 基于greenlet的轻量级执行单元 重用Python标准库API内容(比如Event Queues) socket谢童ssl 利用线程池或者c-cares来执行DNS查询
a. 进程 线程 协程
进程: 概念: 进程是正在运行程序的实例 特点: 具有独立地址空间 是操作系统资源分配的基本单元 进程上下文: 进程的物理实体与支持进程运行的物理环境,包括:地址空间 系统栈 打开文件表 。。。 上下文切换: 由一个进程的上下文转到另一个进程的上下文 系统开销: 运行操作系统程序完成系统管理工作所话费的时间和空间 一个进程可以包括多个线程 线程: - 线程是程序执行的最小单位 - 多线程的优点: 提高程序的并发性 协程: - 协程可以认为是一种用户态的线程,与系统提供的线程不同点是 他需要主动让出cpu时间,而不是由系统进行调度,即控制权在程序员手上。 优缺点: - 进程创建销毁成本高 - 线程开销比进程低,但切换成本高,线程间同步变复杂。 - 协程不陷入内核的情况进行上下文切换,没有同步问题,但需要手动切换。 下图解释: 进程是有状态的 刚启动时就绪态,如果进程调度算法调度到这个进程 就会变成执行态。 分配的算法是有时间片的 当时间片使用完 会继续切回就绪态 如果时间片没有使用完 当有IO发生就会阻塞态 阻塞完成 继续切回用户态
b. 阻塞 非阻塞
connect 阻塞做的操作 客户端和服务端做交互的时候,客户端连接服务器,connect时候阻塞会自动打开,会向服务端发送一个序列号,服务端接受后处于阻塞。
数据接受阻塞 应用层recvfrom调用过程中会发生一个系统调用。系统调用会陷入内核里面。如果没有数据准备好,会等待数据直到数据准备好,内核得到数据把数据复制到用户空间,在返回。
标签:并发 控制 应用 width 使用 概念 算法 物理 logs
原文地址:http://www.cnblogs.com/oyoui/p/7781505.html