python之线程2(单线程和多线程)
python之線程2(單線程和多線程)
# -*- coding: UTF-8 -*-import threadingfrom time import ctime, sleepclass MyThread(threading.Thread): def __init__(self, func, args, name=''): threading.Thread.__init__(self) self.name = name self.func = func self.args = args def getResult(self): return self.res def run(self): print 'starting', self.name, 'at:', ctime() self.res = self.func(*self.args) print self.name, 'finished at:', ctime()# -*- coding: UTF-8 -*-from myThread import MyThreadfrom time import ctime, sleep#threading模塊的其他函數(shù)#activeCount/active_count(): 當(dāng)前活動(dòng)的Thread對(duì)象個(gè)數(shù)#currentThread()/current_thread: 返回當(dāng)前的Thread對(duì)象#enumerate(): 放回當(dāng)前活動(dòng)的Thread對(duì)象列表#settrace(func),為所有線程設(shè)置一個(gè)trace函數(shù)#setprofile(func), 為所有線程設(shè)置一個(gè)profile函數(shù)#stack_size(size=0), 返回新創(chuàng)建線程的棧大小,或?yàn)楹罄m(xù)創(chuàng)建的線程設(shè)定棧的大小為size#斐波那契,階乘與累加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 = 12def 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 done'if __name__ == "__main__": main()#輸出# *** Single Thread# starting fib at: Fri May 13 23:18:47 2022# 233# fib finished at: Fri May 13 23:18:53 2022# starting fac at: Fri May 13 23:18:53 2022# 479001600# fac finished at: Fri May 13 23:18:54 2022# starting sum at: Fri May 13 23:18:54 2022# 78# sum finished at: Fri May 13 23:18:56 2022## *** MULTIPLE THREADS# starting fib at: Fri May 13 23:18:56 2022# starting fac at: Fri May 13 23:18:56 2022# starting sum at: Fri May 13 23:18:56 2022# facsum finished at:finished at: Fri May 13 23:18:57 2022Fri May 13 23:18:57 2022## fib finished at: Fri May 13 23:19:03 2022# 233# 479001600# 78# all done展開閱讀全文投稿時(shí)間:2022-05-14 最后更新 :2022-08-24
.jpg)
標(biāo)簽:氣流干燥設(shè)備