cpu是以時間片的方式為程序分配cup處理時間的,當乙個程序以同步的方式去完成幾件事情時,此程序必須完成了第一件事情以後再做第二件事,如此按順序地向cpu請求完成要做的事情。在此單執行緒的工作模式下,如果把cup看作是一共有100個時間片的話,cpu可能一直都只是花了其中的10個時間片來處理當前程序所要做的事情,只是用到了cpu的10%的時間片,而其他時間都白白浪費了,當然,實際上cpu的工作模式還是做完一件事以後再去做另一件事,只是cup的處理速度非常快,很快就處理完成所請求的情事。
這裡有乙個生活例項可能更好地去理解多執行緒:回去看你女朋友做飯,正常的話她都會把洗好的菜(肉)先放到鍋裡煮,然後一邊洗別的菜或處理別的事情,如:洗碗、收拾桌台準備開飯,人還是乙個人,但她同時做幾件事情,這樣就可以大大地提高效率。總的一句話就是:cpu還是要花同樣多的時間去完成所有的事情,但多執行緒可以讓cpu摻插地同時做多件事情,在視覺上讓使用者覺得計算機在同時幫他處理多件事情,更好地改善使用者體驗。
多執行緒的運用比如:聊天室
資料庫表的複製的停止,需要乙個執行緒在完成乙個工作,比如進行複製工作。乙個執行緒可以完成另乙個工作,比如停止複製,將flag設為false等。如果只有乙個執行緒,那麼就智慧型完成一件事,要麼複製,要麼停止,不利於靈活性和實際情況。
www伺服器等也是要多執行緒,來讓不同的使用者可以進行連線訪問。
集合的理解和好處
集合就是一種容器,用於儲存一組元素 集合和陣列的對比 陣列的不足 1 陣列的長度必須提前指定,而且一旦指定不能更改 2 陣列只能儲存相同型別的元素 集合 1 集合在使用時,長度不用指定,而且可以實現自動擴容或截斷 2 集合沒有指定泛型之前,預設儲存的是任意型別的元素 object型別 指定泛型之後,...
執行緒鎖的使用 和好處 以及缺點
上面寫錯了函式名 是mutex.acquire import threading from threading import thread from threading import lock number 0 lock lock def work3 global number for i in r...
多執行緒的運用 鎖
import threading import time import random defreading for i in range 5 print 執行緒reading i time.sleep random.randint 1,2 def writing for i in range 5 p...