标题:新手求教:threading不节省时间,意义何在?
只看楼主
tulip95
Rank: 1
等 级:新手上路
威 望:1
帖 子:3
专家分:0
注 册:2022-9-24
结帖率:0
已结贴  问题点数:20 回复次数:2 
新手求教:threading不节省时间,意义何在?
为了学习threading,我制作了两组代码来对比效果(一组是四线程并发,另一组是按顺序一个一个执行):
代码1:
import threading
import time

def 玩(t):
    for j in range(100000):
        s=1.0;x=1.1
        for i in range(170):
            s=s*x
            x=x+1
    print(time.time()-t,'\t')

t1=time.time()
th1=threading.Thread(target=玩,args=(t1,))
th2=threading.Thread(target=玩,args=(t1,))
th3=threading.Thread(target=玩,args=(t1,))
th4=threading.Thread(target=玩,args=(t1,))
th1.start()
th2.start()
th3.start()
th4.start()

代码2:
import threading
import time

def 玩(t):
    for j in range(100000):
        s=1.0;x=1.1
        for i in range(170):
            s=s*x
            x=x+1
    print(time.time()-t,'\t')

t1=time.time()
玩(t1)
玩(t1)
玩(t1)
玩(t1)

结果1:
4.004648208618164
4.4277307987213135
5.130835771560669
5.193334579467773

结果2:
1.330603837966919
2.654576301574707
3.99839186668396
5.322086572647095

四线程并发与单线程执行的总用时差不多,这样的多线程有什么用?(我的cpu是四核心四线程)
搜索更多相关主题的帖子: threading time target args for 
2022-09-24 21:14
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:55
帖 子:2004
专家分:7306
注 册:2007-12-17
得分:20 
多线程对cpu密集计算不起作用,反而因为来回切换线程增加了cpu开销,甚至变得更慢

多线程不是用在这种地方的,用在网络相关的比较多,因为网络有很多不稳定性,比如网络爬虫,如果是单线程访问一个网址卡住了整个程序就卡住了,如果用多线程,一个线程卡住了其它线程不受影响

那一年,苍井空还是处女
2022-09-24 21:56
tulip95
Rank: 1
等 级:新手上路
威 望:1
帖 子:3
专家分:0
注 册:2022-9-24
得分:0 
受教了,非常感谢!
2022-09-25 12:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510132-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053924 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved