IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同 ...
分类:
编程语言 时间:
2018-08-03 01:19:19
阅读次数:
163
IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同 ...
分类:
编程语言 时间:
2018-08-01 20:47:01
阅读次数:
170
协程 协程:是单线程下的并发,又称微线程。英文名Coroutine。协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。 需要强调的是: 1. python的线程属于内核级别的,即由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行)2. 单线程 ...
分类:
其他好文 时间:
2018-07-27 21:09:51
阅读次数:
210
一 什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任务,交女朋友的任务,王者荣耀上分的任务, 但egon同一时刻只能做一个任务(cpu同一时间只能干一个 ...
分类:
编程语言 时间:
2018-07-17 21:10:50
阅读次数:
172
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO ...
分类:
其他好文 时间:
2018-07-14 10:23:22
阅读次数:
264
阻塞IO(blocking IO) 在Linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还 ...
分类:
编程语言 时间:
2018-07-12 23:59:43
阅读次数:
300
一 gevent模块 Gevent是一个第三方库,可以轻松通过gevent实现并发同步或异步编程。在gevent中用到的主要模式是Greenlet,它是以C扩展模块形式接入Python的轻量级协程。Greenlet 全部运行在主程序操作系统进程的内部,但它们被协作式地调度。 遇到IO阻塞时会自动切换 ...
分类:
编程语言 时间:
2018-07-12 16:17:46
阅读次数:
140
add by zhj: 下面的文章解释的很好了,这里再说明一下top命令中wa的含义,我们知道,当IO阻塞时,操作系统会把进程改为阻塞态,将CPU调度到运行其它进程。 CPU在空闲状态下,会检查是否有阻塞的IO(磁盘或网络),如果有,那就认为是wa;如果没有,那才是真正的idle。在top命令中,8 ...
分类:
系统相关 时间:
2018-07-04 22:54:34
阅读次数:
289
IO模型的介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不 ...
分类:
编程语言 时间:
2018-06-20 19:01:35
阅读次数:
146
IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同 ...
分类:
其他好文 时间:
2018-06-19 23:23:42
阅读次数:
222