程序 通常被定義為乙個正在執行的程式例項。
執行緒 執行緒是程序的一部分,執行緒總是在某個程序的環境中被建立,它是程序的某乙個執行序列(像函式)。
在這裡可以做乙個比喻,如果把程序比喻成我們過去的地主的話,那麼執行緒就相當於那個時代的長工。因為地主是非常懶的所以程序的活動性不強,如果想要通過乙個程序完成某個操作,它必須有乙個在它環境中執行的執行緒。如果需要完成多步操作,盡量通過多執行緒進行完成,這樣可以盡可能節省足夠多的資源。
程序的組成:作業系統用來管理程序的核心物件,位址空間(所有的可執行模組,像dll模組,所有需要的資料)
執行緒的組成:作業系統對執行緒管理實施的核心物件:執行緒堆疊。
要講執行緒和程序還要先引入乙個量程的概念,量程是作業系統為每乙個執行緒安排了一定的cpu時間,它通過一種迴圈的方式為執行緒提供時間片。
下面是在win32的視窗函式中建立乙個程序的**:
lresult callback wndproc(hwnd hwnd, uint message, wparam wparam, lparam lparam)
break;
//程序的結束方法:
//1、主線程的入口函式返回(建議最好使用這種)
//2、在父程序的某個執行緒出呼叫terminateprocess去結束乙個子程序
//3、在當前程序的某個位置呼叫exitprocess去結束這個子程序
case wm_rbuttondown:
terminateprocess(g_hinst, 0);
break;
case wm_command:
wmid = loword(wparam);
wmevent = hiword(wparam);
// 分析選單選擇:
switch (wmid)
break;
case wm_paint:
hdc = beginpaint(hwnd, &ps);
// todo: 在此新增任意繪圖**...
endpaint(hwnd, &ps);
break;
case wm_destroy:
postquitmessage(0);
break;
default:
return defwindowproc(hwnd, message, wparam, lparam);
} return 0;
}
下面再說執行緒:
執行緒是由兩部分組成
1、作業系統核心 用來存放執行緒的統計資訊。
2、執行緒堆疊 用來維護執行緒**過程中所需要的 的所有函式的引數和區域性變數。
執行緒總是在程序中被建立的,執行緒的生命週期會受到程序的影響:
1、程序一旦被建立,系統必然會同時給出乙個主線程
2、程序一旦死亡,這個程序裡面的所有執行緒都會死亡
3、執行緒需要的資源比程序要少,程序有不活躍,如果需要非同步解決問題因盡量建立執行緒,避免建立程序。
下面是一段使用對話方塊建立的執行緒**:
#include
#include
int myadd(int a, int b)
int piao = 10;//票數
void aaa(lpvoid v)}}
int _tmain(int argc, _tchar* ar**)
else
break;
}//執行緒的三種退出:
//1、執行緒函式的主動返回(建議)
//2、在某個執行緒裡面去呼叫terminatethread結束某個指定的子執行緒
//3、在某個執行緒裡面呼叫exitthread結束當前執行緒
terminatethread(handle1, 0);
terminatethread(handle2, 0);
terminatethread(handle3, 0);
terminatethread(handle4, 0);
getchar();
return 0;
}
Linux學習第十一天
一 昨日回顧 1 訊號處理sigaction 2 使用sigaction如何實現不斷重入效果?struct sigaction act act.sa flags sa siginfo sa nodefer 3 想在2號訊號的處理流程過程中,遮蔽3號訊號 struct sigaction act ac...
C 學習筆記(第十一天)
1 概念 父類,基類 class person 子類 派生類 student 繼承person屬性和方法,擴充套件一些自己屬性和函式 studentnum,studentname.employee 繼承person屬性和方法 teacher 繼承person屬性和方法 圖形類shape 求周長 求面...
Oracle學習筆記第十一天
這活按我猜想應該是dba的活,沒有往這方面發展的想法,所以筆記做得簡單點了 概念 備份 備份就是把資料庫複製到轉儲裝置的過程 恢復恢復就是把資料庫由存在故障的狀態轉變為無故障狀態的過程 語法 用exp命令匯出資料 exp username password parameter value 用imp命...