摘要: 一 线程queue 有三种不同的用法 class queue.Queue(maxsize=0) # 队列:先进先出 class queue.LifoQueue(maxsize=0) # 堆栈:后进先出 class queue.PriorityQueue(maxsize=0) #优先级队列:存储数据时 阅读全文
posted @ 2018-07-11 19:06 芳姐 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 一 信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行,如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群路人争抢公共厕所,公共厕所所有多个坑位,这意味着同一时间可以有多个人上公共厕所,但公共厕所容纳的人数 阅读全文
posted @ 2018-07-11 17:54 芳姐 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一 死锁现象 所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 执行效果 二 递归锁 解决方法,递归锁,在Python中为了支持在 阅读全文
posted @ 2018-07-11 16:22 芳姐 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 一 引子 在一个Python的进程内,不仅有test.py的主线程或者由该主线程开启的其它线程,还有解释器开启的垃圾回收等解释器级别的线程,总之,所有线程都运行在一个进程内 综上: 如果多个线程的target=work,那么执行流程是: 多个线程先访问到解释器的代码,即拿到执行权限,然后将targe 阅读全文
posted @ 2018-07-11 10:34 芳姐 阅读(299) 评论(0) 推荐(0) 编辑