引言
c++繼承要寫上
「訪問標號+ 類名」
private, public, protected 訪問標號的訪問範圍
private:只能由1.該類中的函式、2.其友元函式訪問。
不能被任何其他訪問,該類的物件也不能訪問。
protected:可以被1.該類中的函式、2.子類的函式、3.其友元函式訪問。
但不能被該類的物件訪問。
public:可以被1.該類中的函式、2.子類的函式、3.其友元函式訪問,也可以由4.該類的物件訪問。
注:友元函式包括3種:設為友元的普通的非成員函式;設為友元的其他類的成員函式;設為友元類中的所有成員函式。
正題:
主要使用osapi裡面的qthread類
構造乙個類繼承qthread,重寫routine函式
在呼叫時用run()函式
注意程序的**
設定乙個識別符號通知程序退出,再用另個執行緒**資源qthread::join(*);
擴充套件:互斥鎖(用以解決多個執行緒占用同一塊記憶體問題)
首先建立全域性變數或者堆物件
os_mutex g_mutex;
使用完畢後釋放鎖 g_mutex.unlock();
當執行緒所需時間較長的處理方式:先將使用的同一記憶體複製處理,再用互斥鎖直接替換要處理的內容
訊號量
當多個執行緒同時作用的時候,利用訊號量的機制,可以有效的減少cpu的消耗,當執行緒在等待訊號量的時候,不佔cpu,處於被阻塞的狀態
建立乙個訊號量
os_semaphore g_sem;
用以生成資料的在生成完成後g_sem.post();
消費者接收時g_sem.wait();
wait()可以加時間 int ret = g_sem.wait(1000);
超時處理: if(!ret) ..........
利用ACE管理執行緒
我所接觸的ace中對執行緒操作的類主要有兩個,乙個是ace thread,另乙個為ace thread manager ace thread能夠管理所有執行緒,只要你掌握有需要被管理的執行緒的id ace thread manager的乙個物件能夠管理該物件所建立的執行緒。建立乙個執行緒的函式有 通...
利用CPU多核處理
在mysql5.5.x後,可以利用innodb read io threads和innodb write io threads,取代之前的innodb file io threads引數,在linux平台上就可以根據cpu核數來更改相應的引數值,預設是4.比如cpu是2棵8核的,可以設定 innod...
利用Excel VBA處理文件
遇到如下格式的一篇word文件,格式混亂,不適合列印 由於沒有接觸過word vba,因此決定用excel vba來處理這篇文件。首先全選該文件的內容,貼上到excel文件中。然後建立乙個新的macro,修改該macro為以下 sub formatsheet formatsheet macro ma...