標籤:start 操作 import 調用 分配 指令 作業系統 系統 int
進程:將程式裝載到記憶體並為它分配記憶體資源才能執行,這種執行程式稱為進程,進程是資源的集合。
程式和進程的區別就在於:程式是指令的集合,它是進程啟動並執行靜態描述文本;進程是程式的一次執行活動,屬於動態概念。
優點:允許多個程式同時載入到記憶體中,在作業系統的調度下,可以實現並發地執行。這是這樣的設計,大大提高了CPU的利用率
缺點:進程只能在一個時間幹一件事,進程在執行的過程中如果阻塞,整個進程就會掛起。
線程:包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流程,一個進程中可以並發多個線程,每條線程並存執行不同的任務。
操作CPU,必須先建立線程。
進程與線程的區別:
線程共用記憶體空間,進程的記憶體是獨立的。
同一進程中的線程可以相互連信,進程間的通訊必須有中間代理。
新線程很容易建立;新進程需要重複父進程。
線程可以對同一進程的線程進行控制和操作;進程只能對子進程行使控制。對主要內容的更改。
比如:有時間間隔的效果:
#conding:utf-8import threading,timedef run(m): print‘take‘,m time.sleep(2) run(‘t1‘) #兩結果中間有間隔時間run(‘t2‘)
多線程並發效果:
import threading,timedef run(m): print‘take‘,m time.sleep(2) t1=threading.Thread(target=run,args=(‘t1‘,))t2=threading.Thread(target=run,args=(‘t2‘,))t1.start() #結果同時出現t2.start()
繼承式線程調用:
#conding:utf-8import threading,timeclass mythread(threading.Thread): def __init__(self,m): super(mythread,self).__init__() self.m=m def run(self): print‘take‘,self.m time.sleep(2) t1=mythread(‘t1‘)t1.start()t2=mythread(‘t2‘) #使用繼承式線程調用,無時間間隔t2.start()
python 進程和線程