全局解释器锁
1.全局解释器锁GIL
全局解释器锁限制程序在同一时间中只有一个线程被cpu实际执行。
2.为什么要用到GIL
用户不同线程同时访问同一数据时,保护数据。
3.GIL带来的影响
最大的影响是不能随意使用多线程。要区分任务场景(i/o密集用多线程,计算密集用多进程)
另一种是自定义线程类class mythread(threading.Thread): #在class里要写一个run方法
【上述两种方法,都要start() join()】
import threadpool
pool = threadpool.ThreadPool(len(devs_config)) requests = threadpool.makeRequests(work_thread, devs_config) # work_thread是函数,devs_config是函数列表 [pool.putRequest(req) for req in requests] pool.wait()
另一种是使用concurrent.Future 来代替进程池或线程池---https://mp.csdn.net/postedit/80264447