注意兩個問題:
1、執行緒建立之後,很多人的寫法是直接乙個while死迴圈讓程式空轉,這樣效率低並且浪費資源;
2、當類析構的時候,一定要讓執行緒正常退出。
#pragma once
#include
#include
#include
#include
#include
using
namespace std;
class
cexitthread
;
#include
"exitthread.h"
cexitthread::
cexitthread()
cexitthread::
~cexitthread()
m_var_.
notify_one()
; m_bexit_ =
true
; m_futhread_.
get();
std::cout <<
"呼叫析構函式.\n";}
void cexitthread::
notify()
m_var_.
notify_one()
;}void cexitthread::
t_start()
//執行緒被通知之後,就會進入到while迴圈,一直迴圈
//以下兩句**測試用....
sleep
(1000);
std::cout <<
"...get notify.\n"
;//當該執行緒再次被通知,且m_bexit_為true時,才退出這個while迴圈//
if(m_bexit_)
break;}
std::cout <<
"exit thread.\n"
;}
#include
#include
#include
"exitthread.h"
#include
using
namespace std;
intmain()
執行結果如下圖所示:
當呼叫notify的時候,進入到執行緒內部,迴圈列印「…process」。
psensor跳出main函式作用域呼叫析構函式,退出執行緒。
C 如何在類中建立執行緒
一般我們在啟執行緒時,都是把執行緒函式寫成全域性函式來使用,但是如果要把執行緒操作寫成類,執行緒函式放在類裡面在c 編譯會不通過。在c 類中建立執行緒會有報錯 下面以乙個簡單的類進行舉例 external.件 ifndef radio external h define radio external...
如何在命名空間中用use引入類 方法,並建立別名
在php中,命名空間用來解決在編寫類庫或應用程式時建立可重用的 如類或函式時碰到的兩類問題 使用者編寫的 與php 內部的類 函式 常量或 第三方類 函式 常量之間的名字衝突。為很長的識別符號名稱 通常是為了緩解第一類問題而定義的 建立乙個別名 或簡短 的名稱,提高源 的可讀性。匯入classnam...
建立高效的執行緒安全類的步驟
建立高效的執行緒安全類的步驟 編寫執行緒安全類的最簡單的方法是用 synchronized 宣告每個方法。雖然這種方案可以消除資料損壞,但它同時也會消除您預期從多執行緒獲得的任何收益。這樣,您就需要分析並確保在 synchronized 塊內部僅占用最少的執行時間。您必須格外關注訪問緩慢資源 檔案 ...