python用多线程可以快几倍_python3爬虫使用多线程运算是不是会比较快

python3爬虫使用多线程运算是不是会比较快

发布时间:2020-11-25 09:56:35

来源:亿速云

阅读:65

作者:小新

这篇文章主要介绍了python3爬虫使用多线程运算是不是会比较快,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

多线程存在GIL(global interpret lock)。为了实现多线程功能,程序把线程锁住,然后锁住了之后,只有唯一一个线程运算。Python只能够让线程在同一时间运算一个东西。在不停切换,看起来是多线程的。但实际上不是。import threading

from queue import Queue

import copy

import time

def job(lists, q):

res = sum(lists)

q.put(res)

def multi_theading(lists):

q = Queue()

threads = []

for i in range(4):

t = threading.Thread(target=job, args=(copy.copy(lists), q),

name = 'T%i'%i)

t.start()

threads.append(t)

[t.join() for i in threads]

total = 0

for _ in range(4):

total += q.get()

print(total)

def normal(lists):

# 完全不用多线程

total = sum(lists)

print(total)

if __name__ == '__main__':

lists = list(range(1000000))

s_t = time.time()

normal(lists*4)

print('Normal : ', time.time() - s_t)

s_t = time.time()

multi_theading(lists)

print('multi_threading : ', time.time() - s_t)

运行结果1999998000000

Normal :  0.1705458164215088

1999998000000

multi_threading :  0.14860320091247559

不用多线程是0.1705秒;用了多线程仅仅是稍微快了一点。

感谢你能够认真阅读完这篇文章,希望小编分享python3爬虫使用多线程运算是不是会比较快内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值