python线程为什么这么慢_Python:为什么线程函数比非线程慢

您好我正在尝试计算前10000个素数.

我正在做第一个非线程,然后将计算分为1到5000和5001到10000.我期望线程的使用使它显着更快,但输出是这样的:

--------Results--------

Non threaded Duration: 0.012244000000000005 seconds

Threaded Duration: 0.012839000000000017 seconds

实际上没有什么大不同,除了螺纹功能甚至有点慢.

怎么了?

这是我的代码:

import math

from threading import Thread

def nonThreaded():

primeNtoM(1,10000)

def threaded():

t1 = Thread(target=primeNtoM, args=(1,5000))

t2 = Thread(target=primeNtoM, args=(5001,10000))

t1.start()

t2.start()

t1.join()

t2.join()

def is_prime(n):

if n % 2 == 0 and n > 2:

return False

for i in range(3, int(math.sqrt(n)) + 1, 2):

if n % i == 0:

return False

return True

def primeNtoM(n,m):

L = list()

if (n > m):

print("n should be smaller than m")

return

for i in range(n,m):

if(is_prime(i)):

L.append(i)

if __name__ == '__main__':

import time

print("--------Nonthreaded calculation--------")

nTstart_time = time.clock()

nonThreaded()

nonThreadedTime = time.clock() - nTstart_time

print("--------Threaded calculation--------")

Tstart_time = time.clock()

threaded()

threadedTime = time.clock() - Tstart_time

print("--------Results--------")

print ("Non threaded Duration: ",nonThreadedTime, "seconds")

print ("Threaded Duration: ",threadedTime, "seconds")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值