利用threading Module 撰寫多執行緒程式
簡單的兩執行緒程式
Example Code: 宣告一個返回Fibonacci 數列元素值的子程式, 並讓主執行緒與一個子執行緒分別平行運算該數值五次
thread.py
- import threading
- import time
- import numpy as np
- def FibonacciN(N):
- Fibonacci=[0,1]
- for i in range(N):
- Fibonacci = np.append(Fibonacci, Fibonacci[-2]+Fibonacci[-1])
- return Fibonacci[-1]
- def MultiJob(): #the function to test the threading
- for i in range(3):
- N=50
- print("Child thread:", i, ',', N+2, 'th elements of Fibonacci is ', FibonacciN(N))
- thread = threading.Thread(target = MultiJob) #setup a threading and its target is MultiJob
- thread.start() # start to run the thread
- for i in range(3):
- N=50
- print("main thread :", i, ',', N+2, 'th elements of Fibonacci is ', FibonacciN(N))
- thread.join()
- print("Done.")
Note and Comments
- import threading
- import time
- import numpy as np
- def FibonacciN(N):
- Fibonacci=[0,1]
- for i in range(N):
- Fibonacci = np.append(Fibonacci, Fibonacci[-2]+Fibonacci[-1])
- return Fibonacci[-1]
- def MultiJob(): #the function to test the threading
- for i in range(3):
- N=20
- print("Child thread:", i, ',', N+2, 'th elements of Fibonacci is ', FibonacciN(N))
- thread = threading.Thread(target = MultiJob) #setup a threading and its target is MultiJob
- thread.start() # start to run the thread
- for i in range(5):
- N=20
- print("main thread :", i, ',', N+2, 'th elements of Fibonacci is ', FibonacciN(N))
- thread.join()
- print("Done.")
result