import time
import threading
from mythread import mythread
def fib(x):
time.sleep(0.0005)
if x<2:
return 1
return (fib(x-2)+fib(x-1))
def fac(x):
time.sleep(0.1)
if x<2:
return 1
return(x*fac(x-1))
def sum(x):
time.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:',time.ctime())
print(funcs[i](n))
print(funcs[i].__name__,'finished at:', time.ctime())
print('\n*** multiple thread')
threads =
for i in nfuncs:
t = mythread(funcs[i],(n,),funcs[i].__name__) #此處使用了子類呼叫執行緒的方法,需要注意,執行緒的變數需要是元組形式,因此此處需要使用(n,)
for i in nfuncs:
threads[i].start()
for i in nfuncs:
threads[i].join()
print(threads[i].getresult()) #mythread中已經重新定義了run()方法,可以計算res,通過getresult返回res結果
print('all done')
單執行緒和多執行緒
what 1.程序 當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。2.執行緒 執行緒就是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 是可以共享的,即不同的執行緒可以執行相同的函式。3.多執行緒 多執行緒是指程式中包含多個...
單執行緒和多執行緒
普通的程式預設都是單執行緒,程式的執行方式是從上至下序列執行,示例 import time deffunc a,b time.sleep 1 print a b s time.time func 5,10 func 2,5 func 6,84 func 9,46 e time.time print ...
單執行緒 多執行緒
1.基於python的單執行緒示例 from time import ctime,sleep import time def play video video for i in range 2 print i am playing video s at s video,ctime sleep 5 d...