摘要: 多线程vs多进程 计算密集型 io密集型 阅读全文
posted @ 2019-09-18 16:14 黑糖A 阅读(133) 评论(0) 推荐(0) 编辑
摘要: GIL GIL介绍 在Cpython解释器中有一把GIL锁(全局解释器锁),GIL锁本质是一把互斥锁 导致了同一进程下,同一时间只能运行一个线程,无法利用多核优势 同一个进程下多个线程只能实现并发不能实现并行 为什么要有GIL? 因为Cpython自带的垃圾回收机制不是线程安全的,所有要有GIL锁 阅读全文
posted @ 2019-09-18 15:59 黑糖A 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 信号量Semaphore 同进程的一样 Semaphore管理一个内置的计数器, 每当调用acquire()时内置计数器 1; 调用release() 时内置计数器+1; 计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。 阅读全文
posted @ 2019-09-18 15:37 黑糖A 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 线程锁 多线程修改数据会造成混乱 使用线程锁解决线程修改数据混乱问题 死锁问题 死锁问题解决方法 解决方法,递归锁,在Python中为了支持在同一线程中多次请求同一资源,python提供了可重入锁RLock。 这个RLock内部维护着一个Lock和一个counter变量,counter记录了acqu 阅读全文
posted @ 2019-09-18 15:24 黑糖A 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 昨日回顾 cpu最小的执行单位:线程 进程: 资源集合 线程: 执行单位 操作系统 工厂 进程 车间 线程(cpu) 流水线(电源) 进程的内存空间彼此隔离 线程共享同一份资源 线程开启的两种方法 创建速度 进程需要申请内存空间 慢 线程相当于直接告诉操作系统去干个什么活 快 线程的join方法 线 阅读全文
posted @ 2019-09-18 14:51 黑糖A 阅读(93) 评论(0) 推荐(0) 编辑