做個簡單的比喻:程序=火車,執行緒=車廂執行緒在程序下行進(單純的車廂無法執行)
乙個程序可以包含多個執行緒(一輛火車可以有多個車廂)
不同程序間資料很難共享(一輛火車上的乘客很難換到另外一輛火車,比如站點換乘)
同一程序下不同執行緒間資料很易共享(a車廂換到b車廂很容易)
程序要比執行緒消耗更多的計算機資源(採用多列火車相比多個車廂更耗資源)
程序間不會相互影響,乙個執行緒掛掉將導致整個程序掛掉(一列火車不會影響到另外一列火車,但是如果一列火車上中間的一節車廂著火了,將影響到所有車廂)
程序可以拓展到多機,程序最多適合多核(不同火車可以開在多個軌道上,同一火車的車廂不能在行進的不同的軌道上)
程序使用的記憶體位址可以上鎖,即乙個執行緒使用某些共享記憶體時,其他執行緒必須等它結束,才能使用這一塊記憶體。(比如火車上的洗手間)-"互斥鎖"
程序使用的記憶體位址可以限定使用量(比如火車上的餐廳,最多隻允許多少人進入,如果滿了需要在門口等,等有人出來了才能進去)-「訊號量」
程序與執行緒通訊
程序 定義乙個全域性變數g num,分別建立2個子程序對g num執行不同的操作,並輸出操作後的結果 from multiprocessing import process def plus print 子程序1開始 global g num 宣告它是全域性變數 g num 50 print g n...
python程序 執行緒通訊
main程序下,建立多個執行緒,同一程序下執行緒可以共享位址空間,全域性變數 同一程序下執行緒共享那些資源 usr bin env python coding utf 8 import random import time from multiprocessing import queue,proc...
執行緒 程序及其排程簡介
知識需要不斷總結 驗證 迭代,知其然,知其所以然。1 程序和執行緒 程序和執行緒的區別與聯絡 程序 資源申請的最小單位 執行緒 資源排程的最小單位,程序的一部分,描述指令流的執行狀態。核心中,描述程序的資料結構pcb 程序控制塊,描述執行緒的資料結構 tcb 執行緒控制塊。圖1 單執行緒程序 圖2 ...