• Python-线程进程协程


    线程:计算机中最小工作单元,是一堆指令集。

    进程:默认有主进程,可以包含多个线程,并且共享内部资源;

    协程:使用进程中一个线程去执行多个任务;

    GIL:global intepreter lock 全局解释器锁

    Cpython(python解释器其中一个)独有的全局解释器锁,用于对进程中线程进行加锁,造成一个同一个进程中同一时刻只有一个线程被CPU调用,导致多核无效:解决方案-1)将这个进程中的需要并行(不是并发)线程放到几个进程中(一人一个),-->gil(Cpython的)-->os模块-->利用多核处理,但是同一个进程中资源是共享的,进程间不是,所以需要而外的操作,所以并不好;2)

    io密集型:阻塞多,计算密集型:阻塞少

    结论:在Python中

    io密集型的:可以用多线程

    任务密集型的:用c语言

    正常情况下在主线程中创建的子线程和主线程各自独立运行(主线程结束后子线程依然可以执行),特殊情况:

    1)子线程被jion()

    jion()后面的主线程语句不再被解释执行,知道这个子线程结束再开始执行;

    2)子线程被setdeamon(被设为守护线程)

    主线程结束后,这个子线程必须结束,不再执行

    tips:1)可以看成子线程影响主线程,2)则相反

  • 相关阅读:
    基于任意深度学习+树状全库搜索的新一代推荐系统
    千人千面、个性化推荐,解读数据赋能商家背后的AI技术
    Graphics2D画图时背景颜色设置
    高校大数据实习实训平台需求
    B2B行业的支付的那些事。
    生成excel xls
    简单文件上传
    计时3秒后自动跳转到登录页
    jquery $换JQ
    用于二维数组排序
  • 原文地址:https://www.cnblogs.com/zzm-blog/p/10006794.html
Copyright © 2020-2023  润新知