摘要: 一、守护线程 1. 对主进程来说,运行完毕指的是主进程代码运行完毕 2. 对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕 详解: 1、主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护的子进程都运行完毕后回收子进程 阅读全文
posted @ 2018-10-30 12:11 qi.hu 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一、GIL - 全局解释器锁 有了GIL的存在,同一时刻同一进程中只有一个线程被执行;由于线程不能使用cpu多核,可以开多个进程实现线程的并发,因为每个进程都会含有一个线程,每个进程都有自己的GIL锁。 ① py文件产生了多个线程,到达解释器 ② 由于GIL锁问题,所以只能执行一个线程,先调用一个线 阅读全文
posted @ 2018-10-30 12:10 qi.hu 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 一、新式创建进程、线程池 from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor 1 1. concurrent.futures 提供了高度封装的异步调用接口 2 2. ThreadPoolExecutor 线程池 阅读全文
posted @ 2018-10-30 10:55 qi.hu 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 一、队列 这三种队列都是线程安全的,不会出现多个线程抢占同一个资源或数据的情况 1 import queue #不需要通过threading模块里面导入,直接import queue就可以了,这是python自带的 2 q=queue.Queue() 3 q.put('first') 4 q.put 阅读全文
posted @ 2018-10-30 10:51 qi.hu 阅读(203) 评论(0) 推荐(0) 编辑