主要内容: 一、信号量 二、Event事件 三、定时器 四、线程queue 五、进程池与线程池 1?? 信号量 1、信号量的理解 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行。 例如:把互斥锁比作是合租房屋的人去抢一个厕 ...
分类:
编程语言 时间:
2018-05-12 22:27:49
阅读次数:
213
1. 线程 queue queue is especially useful in threaded programming when information must be exchanged safely between multiple threads. queue 三种方法 : class ...
分类:
编程语言 时间:
2018-05-11 20:36:27
阅读次数:
197
进程线程的区别在进程,线程,协程的区别 linux或者unix有fork()函数,但是不支持win系统。 multiprocessing multiprocessing模块是跨平台版本的多进程模块。支持win系统,用法如下: *该py文件是通过cmd窗口执行,不然执行不了多进程 创建子进程时,只需要 ...
分类:
编程语言 时间:
2018-05-08 19:28:05
阅读次数:
156
一.基础部分 1 2 3 二.函数 1 2 3 三.模块 常用到的模块有哪些? 常用的正则表达式 查找某一路径下所有的文件 创建删除文件 模块安装方式 四.面向对象 1 2 3 五.网络编程 OSI 7层协议 三次握手、四次挥手 TCP和UDP 六.并发编程 进程、线程、协程区别 GIL锁 进程池线 ...
分类:
其他好文 时间:
2018-05-07 19:35:19
阅读次数:
196
import time from multiprocessing import Process,Pool def Foo(i): time.sleep(1) print(i) def Bar(arg): print('hello') if __name__ == '__main__': pool =... ...
分类:
系统相关 时间:
2018-05-07 15:27:01
阅读次数:
158
from multiprocessing import Process,Pool #进程池 import os,time def run(i): time.sleep(1) print ("in the process",os.getpid()) return i+100 def bar(arg):... ...
分类:
编程语言 时间:
2018-05-03 11:38:08
阅读次数:
189
之前说过Python的多线程只能运行在一个单核上,也就是各线程是以并发的方式异步执行的 这篇文章我们来聊聊Python多进程的方式 多进程依赖于所在机器的处理器个数,在多核机器上进行多进程编程时,各核上运行的进程之间是并行执行的,可以利用进程池,是每一个内核上运行一个进程,当翅中的进程数量大于内核总 ...
分类:
系统相关 时间:
2018-05-01 10:53:05
阅读次数:
229
一、GIL:全局解释器锁 1 、GIL:全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的, 同一个进程内的所有线程都需要先抢到GIL锁,才能执行解释器代码 2、GIL的优缺点: 优点: 保证Cpython解释器内存管理的线程安全 缺点:同一进程内所有的线程同一时刻只能有一个执行,也就说Cp ...
分类:
编程语言 时间:
2018-04-27 16:49:41
阅读次数:
181
GIL 多进程多线程使用场景 线程互斥锁与GIL对比 基于多线程实现并发的套接字通信 进程池与线程池 同步、异步、阻塞、非阻塞 ...
分类:
编程语言 时间:
2018-04-27 16:47:39
阅读次数:
226
GIL全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的,同一个进程内的所有线程都需要先抢到GIl锁,才能执行解释器代码 GIL的优缺点: 优点:保证Cpython解释器内存管理的线程安全 缺点:同一个进程内所有的线程同一时刻只能有一个执行,也就是说Cpython解释器的多线程无法实现并行, ...
分类:
编程语言 时间:
2018-04-27 16:46:09
阅读次数:
202