搜索内容

Python-7.并发编程
  • 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
  • 异步调用与回调机制
    Python-7.并发编程

    异步调用与回调机制

    提交任务的两种方式: 1. 同步调用: 提交完任务后,就在原地等待任务执行完毕,拿到结果,再执行下一步代码,导致程序是串行执行。 来看一个拉粑粑的例子: f……
    admin 2018/11/13
  • 进程池和线程池
    Python-7.并发编程

    进程池和线程池

    在刚开始学多进程或多线程时,我们迫不及待地基于多进程或多线程实现并发的套接字通信,然而这种实现方式的致命缺陷是: 服务的开启的进程数或线程数都会随着……
    admin 2018/11/13
  • 多线程-并发的套接字通信
    Python-7.并发编程

    多线程-并发的套接字通信

    我们来看看原来的例子,简单的套接字通信: 服务端: import socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(("127.0.0……
    admin 2018/11/13
  • 多线程-线程queue
    Python-7.并发编程

    多线程-线程queue

    queue is especially useful in threaded programming when information must be exchanged safely between multiple threads. 进程queue:用于进程之间共享数……
    admin 2018/11/12
  • 多线程-信号量 Semaphore, Event, 定时器 Timer
    Python-7.并发编程

    多线程-信号量 Semaphore, Event, 定时器 Timer

    一、信号量 Semaphore 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行,如……
    admin 2018/11/07
  • 多线程-死锁与递归锁
    Python-7.并发编程

    多线程-死锁与递归锁

    一、死锁现象 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称……
    admin 2018/11/05
  • 多线程-GIL全局解释锁
    Python-7.并发编程

    多线程-GIL全局解释锁

    一、 引子 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes a……
    admin 2018/10/22