优草派 > Python

Python支持多线程吗?Python多线程的特点

陈立鑫         优草派

有许多正在初学Python的开发者常常会问Python它这门语言支持多线程吗?那么由于线程是操作系统直接支持的执行单元,高级语言一般都内置有多线程的支持,其实Python它也不例外,而且Python的线程是Posix Thread,而不是模拟出来的线程,所以Python它是最“纯正”的多线程哦。

Python支持多线程吗?Python多线程的特点

下面让我们看几个Python中分别用单线程、使用多线程、使用多进程的三个方法对最大公约数来进行计算,代码如下:

from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import time 
  def gcd(pair):
    a, b = pair
    low = min(a, b)
    for i in range(low, 0, -1):
        if a % i == 0 and b % i == 0:
            return i
 numbers = [
    (1963309, 2265973), (1879675, 2493670), (2030677, 3814172),
    (1551645, 2229620), (1988912, 4736670), (2198964, 7876293)
if __name__ == '__main__':
    # 不使用多线程和多进程
    start = time.time()
    results = list(map(gcd,numbers))
    end = time.time()
    print('未使用--timestamp:{:.3f} second'.format(end-start))
    #使用多线程
    start = time.time()
    pool = ThreadPoolExecutor(max_workers=3)
    results = list(pool.map(gcd,numbers))
    end = time.time()
    print('使用多线程--timestamp:{:.3f} second'.format(end-start))
    #使用多进程
    start = time.time()
    pool = ProcessPoolExecutor(max_workers=3)
    results = list(pool.map(gcd,numbers))
    end = time.time()
    print('使用多进程程--timestamp:{:.3f} second'.format(end-start))

输出结果:

Python支持多线程吗?Python多线程的特点

之前的线程数与进程数都为3,现在我们修改为4再看看,如图所示:

Python支持多线程吗?Python多线程的特点

为了更能说明问题,将线程数和进程数继续增加到5,如图所示:

Python支持多线程吗?Python多线程的特点

通过这个实例可以总结出Python是支持多线程的,而且多线程的运用对Python还是非常方便的,但是不要指望能够有效利用多核。如果一定要通过多线程利用多核,那只能通过C扩展来实现,不过这样就失去了Python简单易用的特点。不过,也不用过于担心,Python虽然不能利用多线程实现多核任务,但可以通过多进程实现多核任务。多个Python进程有各自独立的GIL锁,互不影响。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024