zoukankan      html  css  js  c++  java
  • python的多线程是否没有用了

    python的多线程是否就完全没有用了呢?

    相同的代码,为何有时候多线程会比单线程慢,有时又会比单线程快? 
    这主要跟运行的代码有关: 
    1、 CPU密集型代码 
    (各种循环处理、计数等等 ),在这种情况下,由于计算工作多, ticks计数很快就会达到 
    100阈值,然后触发 GIL的释放与再竞争 (多个线程来回切换当然是需要消耗资源的),所以 python下的多线程遇到 CPU密集型代码时,单线程比多线程效率高。 
    IO密集型代码 (文件处理、网络爬虫等 ),多线程能够有效提升效率 
    (单线程下有 IO操作会进行 IO等待,造成不必要的时间浪费,而开启多线程能在 
    线程 
    A等待时,自动切换到线程 
    B,可以不浪费 
    CPU的资源,从而能提升程序执行效率 
    )。

    进行 IO密集型的时候可以进行分时切换 所有这个时候多线程快过单线程( 
    5)如果 python想充分利用多核 CPU,可以采用多进程, 每个进程有各自独立的 
    GIL,互不干扰,这样就可以真正意义上的并行执行,所以在 
    python中,多进程的执行效率优于多线程 
    (仅仅针对多核 CPU而言 )。 
    所以在多核 CPU下,想做并行提升效率,比较通用的方法是使用多进程,能够有效提高执行效率。

  • 相关阅读:
    虚拟机安装
    虚拟机简介
    stm32(新建工程)
    高校教室管理系统
    按键抬起有效
    数码管0~9显示
    流水灯程序设计
    P0.0口驱动一个LED闪烁
    Adobe 系列下载链接
    Microsoft 常用下载链接
  • 原文地址:https://www.cnblogs.com/wangkun122/p/11095566.html
Copyright © 2011-2022 走看看