python 单线程和多线程执行对比 -3

from myThread import MyThread
from time import ctime, sleep


def fib(x):
    sleep(0.005)
    if x < 2: return 1
    return (fib(x - 2) + fib(x - 1))


def fac(x):
    sleep(0.1)
    if x < 2: return 1
    return (x * fac(x - 1))


def sum(x):
    sleep(0.1)
    if x < 2:
        return 1
    return (x + sum(x - 1))

funcs = [fib, fac, sum]
n = 12
def main():
    nfuncs = range(len(funcs))
    print('SINGLE THREAD')
    for i in nfuncs:
        print('starting', funcs[i].__name__, 'at:', ctime())
        print(funcs[i](n))
        print(funcs[i].__name__, 'finished at:', ctime())

    print("
  MULTIPLE THREADS")
    threads = []
    for i in nfuncs:
        t = MyThread(funcs[i],(n,),funcs[i].__name__)
        threads.append(t)
    for i in nfuncs:
        threads[i].start()
    for i in nfuncs:
        threads[i].join()
        print(threads[i].getResult())
    print('ALL DOME')

if __name__ == '__main__':
    main()

  

原文地址:https://www.cnblogs.com/412013cl/p/10194263.html