1測試例子
#include <iostream>
#include <string>
#include <boost/thread/thread.hpp>
void ThreadFunc()
{
std::cout << "Welcome to thread function" << std::endl;
}
int main(int argc, char* argv[])
boost::thread instance(&ThreadFunc);
instance.join();
return 0;
2 攜帶參數例子
#include <boost/bind.hpp>
void threadFunc(const char* pszContext)
std::cout << pszContext << std::endl;
char* pszContext = "[email protected]";
boost::thread thread1(boost::bind(&threadFunc, pszContext));
thread1.join();
3 類的非靜态函數作為線程函數
生産環境中經常需要通路類的私有成員,如果類的靜态函數作為線程函數,通過參數的方式傳遞極其不友善
#include <boost/function/function0.hpp>
class CThreadClass
public:
CThreadClass()
memset(m_szContext, 0x00, 1024);
std::cout << m_szContext << std::endl;
void StartThread()
strcpy_s(m_szContext, "Welcome to thread func\n");
boost::function0<void> f = boost::bind(&CThreadClass::ThreadFunc, this);
boost::thread thrd(f);
thrd.join();
private:
char m_szContext[1024];
};
CThreadClass instance;
instance.StartThread();
參考http://blog.csdn.net/zhuxiaoyang2000/article/details/6588031/
本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1951940,如需轉載請自行聯系原作者