Thread(執行緒)

SuperYuWang發表於2018-03-06

多執行緒類似於同時執行多個不同程式

多執行緒執行有如下優點:

1.使用執行緒可以把佔據長時間的程式中的任務放到後臺去處理。

2.使用者介面可以更加吸引人,這樣比如使用者點選了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度

3.程式的執行速度可能加快

4.在一些等待的任務實現上如使用者輸入、檔案讀寫和網路收發資料等,執行緒就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如記憶體佔用等等。


Python3 執行緒中常用的兩個模組為:

  • _thread
  • threading(推薦使用)




執行緒:程式中的每個子任務,不能獨立存在

程式:獨立的所有子任務的集合

執行緒,程式:目的都是想同時完成任務


執行緒的5種狀態:
建立,就緒,執行,阻塞,死亡
1.建立物件:建立

   2.start():就緒

   3.run():執行

   4.:阻塞

   5.:死亡

類執行緒例項:

import threading
import time
class MyThread(threading.Thread):
    def __init__(self,name):
        threading.Thread.__init__(self)
        self.name=name
        print("My Thread...")
    def run(self):
        for i in range(10):
            print(self.name,i)
            time.sleep(1)
t=MyThread("th1")
t2=MyThread("th2")
t.start()
t.join(3)#join()進來的執行緒先執行
t2.start()

執行緒例項:

import _thread
import time

# 為執行緒定義一個函式
'''def print_time( threadName, delay):
   count = 0
   while count < 5:
      time.sleep(delay)
      count += 1
      print ("%s: %s" % ( threadName, time.ctime(time.time()) ))

# 建立兩個執行緒
try:
   _thread.start_new_thread( print_time, ("Thread-1", 2, ) )
   _thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
   print ("Error: 無法啟動執行緒")
input('')'''
def test(threadName):
    for i in range(20):
        print(threadName,i)
_thread.start_new_thread(test,("th1",))
_thread.start_new_thread(test,("th2",))
input("")

相關文章