2015-08-19 15:23:38 週三
執行緒執行緒安全
如果你的**所在的程序中有多個執行緒在同時執行,而這些執行緒可能會同時執行這段**
執行緒安全問題都是由全域性變數及靜態變數引起的
若每個執行緒中對全域性變數、靜態變數只有讀操作,而無寫操作,一般來說,這個全域性變數是執行緒安全的;若有多個執行緒同時執行寫操作,一般都需要考慮執行緒同步,否則就可能影響執行緒安全
執行緒安全就是多執行緒訪問時,採用了加鎖機制,當乙個執行緒訪問該類的某個資料時,進行保護,其他執行緒不能進行訪問直到該執行緒讀取完,其他執行緒才可使用
執行緒不安全就是不提供資料訪問保護,有可能出現多個執行緒先後更改資料造成所得到的資料是髒資料
一條執行緒指的是程序中乙個單一順序的控制流,乙個程序中可以並行多個執行緒,每條執行緒並行執行不同的任務
執行緒和程序的區別在於,子程序和父程序有不同的**和資料空間,而多個執行緒則共享資料空間,每個執行緒有自己的執行堆疊和程式計數器為其執行上下文
join();可以用來邀請其他執行緒先執行
yield();告訴系統"把自己的cpu時間讓掉,讓其他執行緒或者自己執行"
同步非同步&阻塞非阻塞
1. 同步,就是我呼叫乙個功能,該功能沒有結束前,我死等結果。
2. 非同步,就是我呼叫乙個功能,不需要知道該功能結果,該功能有結果後通知我(**通知)
3. 阻塞, 就是呼叫我(函式),我(函式)沒有接收完資料或者沒有得到結果之前,我不會返回。
4. 非阻塞, 就是呼叫我(函式),我(函式)立即返回,通過select通知呼叫者
同步io和非同步io的區別就在於:資料拷貝的時候程序是否阻塞!
阻塞io和非阻塞io的區別就在於:應用程式的呼叫是否立即返回!
多路復用:
所謂i/o多路復用機制,就是說通過一種機制,可以監視多個描述符,一旦某個描述符就緒(一般是讀就緒或者寫就緒),能夠通知程式進行相應的讀寫操作
程序 執行緒 同步 非同步 阻塞 非阻塞
1.程序和執行緒 1 程序 process 是windows系統中的重要概念,它包含著乙個執行程式所需要的資源 乙個正在執行的應用程式在作業系統中被視為乙個程序 程序可以包含乙個或多個執行緒 程序和程序之間是相互獨立的,乙個程序無法訪問另外乙個程序的資料 2 執行緒 thread 是程序中的基本執行...
併發,同步,非同步,阻塞,非阻塞,執行緒
乙個cpu沒有真正意義的併發,兩個人同時做同樣的事情才是真正意義上的併發,只有統籌分時處理.多路同步 同步,實時處理並且活動按順序執行 非同步,乙個人合理的安排時間來做事情,分時處理,活動分段執行,非順序執行 阻塞模式,等,同步,併發,非同步都有可能會阻塞,只是機率的大小 非阻塞模式 不等 併發,併...
阻塞,非阻塞,非同步,同步
之前一直對這個概念理不太清楚,今天看到一篇文章感覺不錯 本文 老張愛喝茶,廢話不說,煮開水。出場人物 老張,水壺兩把 普通 水壺,簡稱水壺 會響的水壺,簡稱響水壺 1 老張把水壺放到火上,立等水開。同步阻塞 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。同步非阻...