搜索内容

最新文章
  • IO模型比较分析
    Python-7.并发编程

    IO模型比较分析

    到目前为止,已经将四个IO Model都介绍完了。 现在回过头来回答最初的那几个问题: blocking和non-blocking的区别在哪? synchronous IO和asynchronous IO的区……
    admin 2018/11/22
  • 异步IO(Asynchronous I/O)
    Python-7.并发编程

    异步IO(Asynchronous I/O)

    Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入。先看一下它的流程: 用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面……
    admin 2018/11/22
  • 多路复用IO(IO multiplexing)
    Python-7.并发编程

    多路复用IO(IO multiplexing)

    IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了。有些地方也称这种IO方式为事件驱动IO(event driven IO)。我们都知道,sele……
    admin 2018/11/22
  • 非阻塞IO(non-blocking IO)
    Python-7.并发编程

    非阻塞IO(non-blocking IO)

    Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用户进程发出read操作时……
    admin 2018/11/22
  • 阻塞IO(blocking IO)
    Python-7.并发编程

    阻塞IO(blocking IO)

    在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样:   当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一……
    admin 2018/11/21
  • IO模型介绍
    Python-7.并发编程

    IO模型介绍

    为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non……
    admin 2018/11/21
  • gevent模块
    Python-7.并发编程

    gevent模块

    安装: pip3 install gevent   Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模……
    admin 2018/11/15
  • greenlet模块
    Python-7.并发编程

    greenlet模块

    如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send。。。非常麻……
    admin 2018/11/15
  • 协程
    Python-7.并发编程

    协程

    一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)的情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状……
    admin 2018/11/15
  • 进程池线程池小练习
    Python-7.并发编程

    进程池线程池小练习

    一个简单的爬虫基础练习: from concurrent.futures import ThreadPoolExecutor import requests, time def get(url): print("GET %s" % url) ……
    admin 2018/11/14