一、執行緒概念(thread)
執行緒是可由cpu直接執行的實體
乙個程序內部可建立多個執行緒
多個執行緒共享cpu可以實現併發執行
執行緒的併發程度要比程序更細
windows的createthread()
功能:把乙個函式建立為乙個程序
handle createthread (lpsecurity_attributes lpthreadattributes,dword dwstacksize,lpthread_routine threadfunction//執行緒函式,lpvoid lpparameter//執行緒函式引數)
執行緒函式的原型
dword threadfunction(lpvoid lpparameter//引數)
單執行緒程式和多執行緒程式
單執行緒程式:整個程序只有乙個執行緒。windows程式預設只有乙個執行緒(主線程,main執行緒)
多執行緒程式:整個執行緒至少有兩個執行緒。主線程和至少乙個使用者執行緒
二、典型應用場景
1、程式的多個功能需要併發執行
2、提高視窗程式的互動性(後台運算與前端互動操作分為兩個執行緒進行執行)
3、需要改善程式結構的地方
4、多喝cpu上的應用,充分發揮多核效能
建立執行緒:
win32庫建立執行緒:createthread (執行緒函式,引數)
mfc建立執行緒:afxbeginthread(執行緒函式,引數)
建立遠端執行緒:createremotethread (程序,執行緒函式,引數)
linux建立執行緒:pthread_create(執行緒函式,引數)
使用執行緒的麻煩
程式難以除錯
執行緒安全問題
併發過程難以控制
os 程序執行緒概念
作業系統中為了提供cpu的利用率,引入了多道程式設計,於是就有了程序的概念。程序模型無疑提高了cpu的利用率,因為多個程序可以 同時 執行在乙個cpu上,乙個程序被阻塞掉了,另乙個程序就可以被排程上cpu繼續執行了。這樣降低了cpu閒置的時間。但是程序模型卻存在乙個問題。那就是如果乙個程序被阻塞掉了...
執行緒 程序 多執行緒核心概念
執行緒就是獨立的執行路徑 在程式執行時,即使沒有自己建立執行緒,後台也會有多個執行緒,如主線程,gc執行緒 main 稱之為主線程,為系統的入口,用於執行整個程式 在乙個程序中,如果開闢了多個執行緒,執行緒的執行由排程器安排排程,排程器是與作業系統緊密相關的,先後順序是不能人為的干預的。對同乙份資源...
程序管理(程序概念與同步)
前言 在早期的作業系統中在記憶體中只有乙個程式 作業 cpu一次執行乙個程式 作業 這是程式的順序執行。為了提高cpu的利用率現代作業系統中可以讓多個程式 作業 載入到記憶體中,這是程式 程序 的併發執行。順序執行與併發執行 順序執行 顧名思義,按照程式的順序執行 併發執行 書上的定義是多個程序實體...