请问这节课的源代码提供了吗。。

来源:8-6 如何使用多进程

不务正业的码农

2018-05-12

我在8_6里看见的好像和课上演示的不一样。

写回答

1回答

allonn

2018-05-26

# 多进程&多线程性能对比

from threading import Thread
from multiprocessing import Process


def isArmstrong(n):
   a, t = [], n
   while t > 0:
       a.append(t % 10)
       t //= 10 # 取整除, 返回商的部分
   k = len(a)
   return sum(x ** k for x in a) == n


def findArmstrong(a, b):
   print(a, b)
   res = [k for k in range(a, b) if isArmstrong(k)]
   print('%s ~ %s: %s' % (a, b, res))


def findByThread(*argslist):
   workers = []
   for args in argslist:
       worker = Thread(target=findArmstrong, args=args)
       workers.append(worker)
       worker.start()


def findByProcess(*argslist):
   workers = []
   for args in argslist:
       worker = Process(target=findArmstrong, args=args)
       workers.append(worker)
       worker.start()

   for worker in workers:
       worker.join()


if __name__ == '__main__':
   import time

   start = time.time()
   # 29s
   # findByProcess((20000000, 25000000), (25000000, 30000000))
   findByThread((20000000, 25000000), (25000000, 30000000))
   print(time.time() - start)

0
0

Python高效编程技巧实战

精选50个Python案例,源自实战,全面提升Python编程能力

2582 学习 · 360 问题

查看课程