python中的多进程--多线程--协程

全局解释器锁

1.全局解释器锁GIL

全局解释器锁限制程序在同一时间中只有一个线程被cpu实际执行。

2.为什么要用到GIL

用户不同线程同时访问同一数据时,保护数据。

3.GIL带来的影响

最大的影响是不能随意使用多线程。要区分任务场景(i/o密集用多线程,计算密集用多进程)


多线程使用有两种方式,一种是使用threading.Thread()

另一种是自定义线程类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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值