上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 一 gevent模块 适用于单线程下多个任务的I/O行为,实现遇到I/O就自动切到另外一个任务。 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部 阅读全文
posted @ 2018-12-19 21:09 混世妖精 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 一 greenlet模块 如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send。。。非常麻烦),而使用greenlet模块可以非常简单地实现这20个任务直接的切换 单纯的切换(在没有io的情况下或者没有重复 阅读全文
posted @ 2018-12-19 20:52 混世妖精 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,并发的本质:切换+保存状态。 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞(I/O),另外一种情况是该任务计算的时间过长或有一个优先级更高的程序替 阅读全文
posted @ 2018-12-18 23:15 混世妖精 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 提交任务的两种方式:同步调用与异步调用 同步调用 使程序编程串行 异步调用 阻塞:是进程运行的一种状态,进程运行是碰到I/O就进行阻塞状态,会被剥夺走cpu的执行权限。 同步不同于阻塞,同步:是提交任务的一种方式,如果提交的任务是一个纯计算的同步,没有I/O,提交后要等,没有阻塞。 阅读全文
posted @ 2018-12-17 23:12 混世妖精 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: 一 进程池与线程池 在刚开始学多进程或多线程时,我们迫不及待地基于多进程或多线程实现并发的套接字通信。 server import socket from threading import Thread def communicate(conn): while True: try: data = c 阅读全文
posted @ 2018-12-17 23:09 混世妖精 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 一 线程queue queue is especially useful in threaded programming when information must be exchanged safely between multiple threads. 有三种不同的用法 class queue. 阅读全文
posted @ 2018-12-17 20:10 混世妖精 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 一 信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行,如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群路人争抢公共厕所,公共厕所有多个坑位,这意味着同一时间可以有多个人上公共厕所,但公共厕所容纳的人数是 阅读全文
posted @ 2018-12-17 19:51 混世妖精 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 一 死锁现象 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 执行效果 二 递归锁 解决方法,递归锁,在Python中为了支持 阅读全文
posted @ 2018-12-17 15:29 混世妖精 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lo 阅读全文
posted @ 2018-12-17 14:31 混世妖精 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 守护线程 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调的是:运行完毕并非终止运行 详细解释: 在一个进程内,如果不开其它线程,默认就只有一个主线程,主线程代码运行完,改进程结束 在一个进程内,开多线程,主线程在运行完毕后,等待其它线程运行完毕后,结束。主线程结束代表 阅读全文
posted @ 2018-12-17 10:57 混世妖精 阅读(137) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页