1. 程式人生 > >python-多線程1

python-多線程1

ron 運行 生成 -s style 們的 read 對象 可能

程序\進程\線程的關系:

程序(program)

  一組功能集合的靜態描述,程序至少有一個進程

進程(process)

  進程是系統進行資源分配和調度的,他們擁有自己獨立的空間,進程至少有一個線程

線程(thread)

  線程是處理器調度的基本單位,他們的空間是共享的,一個進程中可以有多個線程

多線程的優點:

  使用線程可以把占據長時間的程序的任務放到後臺去處理,使得用戶體驗更好.比如,用戶點擊了一個按鈕去觸發

某些時間的處理,可以彈出一個進度條來顯示處理的進度

‘‘‘
本代碼主要目的:
    理解多線程運行邏輯
    熟悉語法和方法
‘‘‘

import threading 
import time #用於停頓的 class myThread(threading.Thread): #使用多線程,必須要繼承父類threading.Thread def __init__(self,threadID,name,counter): threading.Thread.__init__(self) #固定格式,相當於線程的初始化 self.threadID = threadID self.name = name self.counter = counter print(初始化完成
) def run(self): #你不能確定run()在不同線程間的執行順序,這個由CPU處理來決定的 print("開始" + self.name) print_time(self.name,self.counter,5) print("結束" + self.name) def print_time(threadName,counter,delay): while counter: time.sleep(delay)#停頓5s print("%s:%s"%(threadName,time.ctime(time.time())))#
打印線程名和時間 counter = counter - 1 #創建線程,生成兩個對象 thread1 = myThread(1,"Thread-1",1) thread2 = myThread(2,"Thread-2",2) #開啟線程 thread1.start() #啟動線程,每個線程對象必須至少調用一次該函數,他會自動調用run()方法 thread2.start()

可能會出現不同的結果,出現的順序不同

初始化完成
初始化完成
開始Thread-1
開始Thread-2
Thread-1:Sat Jun 17 00:39:50 2017
結束Thread-1
Thread-2:Sat Jun 17 00:39:50 2017
Thread-2:Sat Jun 17 00:39:55 2017
結束Thread-2

  

  

python-多線程1