單執行緒和多執行緒的優缺點

2021-10-02 18:03:56 字數 737 閱讀 9532

壞處:增加了排程和管理的開銷,帶來了一些不確定性,需要複雜的同步機制,避免死鎖等等。

好處:一定程度上提高響應速度,在多核的情況下還是更能充分利用cpu資源的。

如果執行緒出現死鎖,唯一能證明的就是應用程式有問題,這並不是執行緒的缺點。

執行緒相對於程序的優點:

1、開銷小

2、資源共享性好。

執行緒相對於程序的缺點:

1、共享資源需要耗費一定的鎖資源,同步相對複雜。

2、乙個執行緒崩潰可能導致整個程序崩潰,這個當然是自己的應用程式有問題

cpu是以時間片的方式為程序分配cup處理時間的,當乙個程序以同步的方式去完成幾件事情時,此程序必須完成了第一件事情以後再做第二件事,如此按順序地向cpu請求完成要做的事情。在此單執行緒的工作模式下,如果把cup看作是一共有100個時間片的話,cpu可能一直都只是花了其中的10個時間片來處理當前程序所要做的事情,只是用到了cpu的10%的時間片,而其他時間都白白浪費了,當然,實際上cpu的工作模式還是做完一件事以後再去做另一件事,只是cup的處理速度非常快,很快就處理完成所請求的情事。

這裡有乙個生活例項可能更好地去理解多執行緒:回去看你女朋友做飯,正常的話她都會把洗好的菜(肉)先放到鍋裡煮,然後一邊洗別的菜或處理別的事情,如:洗碗、收拾桌台準備開飯,人還是乙個人,但她同時做幾件事情,這樣就可以大大地提高效率。總的一句話就是:cpu還是要花同樣多的時間去完成所有的事情,但多執行緒可以讓cpu摻插地同時做多件事情,在視覺上讓使用者覺得計算機在同時幫他處理多件事情,更好地改善使用者體驗。

單執行緒和多執行緒

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...