資源簡介
C++封裝的一個linux和windows的線程類,一個線程鎖類,兩個配合使用實現一份多線程的代碼適應兩個平臺

代碼片段和文件信息
//?AllOSThread.cpp:?
#include?“AllOSThread.h“
#include?
AllOSThread::AllOSThread()
{
????memset(m_ThreadPoll?0?sizeof(m_ThreadPoll));
m_iCurThreadCount?=?0;
}
AllOSThread::~AllOSThread()
{?
}
bool?AllOSThread::CreateThread(ThreadFun?pFun?void*?pThParam)
{
if(m_iCurThreadCount?>=?MAX_THREAD)
return?false;
#ifdef?WIN32
????UINT?uiThreadID;
????m_ThreadPoll[m_iCurThreadCount]?=?(THREAD_HANDLE)(::_beginthreadex(NULL?NULL?pFun?pThParam?NULL?&uiThreadID));?????
if(NULL?==?m_ThreadPoll[m_iCurThreadCount])
????{
????????assert(0);
return?false;
????}
m_iCurThreadCount++;
return?true;
#else?//linux
UINT?upth;
//設置線程屬性(分離)執行完后自動釋放資源
pthread_attr_t?attr;
pthread_attr_init?(&attr);
pthread_attr_setdetachstate(&attr?PTHREAD_CREATE_DETACHED);
upth?=?pthread_create(&m_ThreadPoll[m_iCurThreadCount]NULLpFun?pThParam);
if?(upth)
{
assert(0);
return?false;
}
pthread_attr_destroy?(&attr);
m_iCurThreadCount++;
return?true;
#endif
}
void?AllOSThread::DestroyThread()
{
//等待消亡線程,釋放資源
#ifdef?_WIN32
for(int?i=0;?i {
if?(NULL?!=?m_ThreadPoll[m_iCurThreadCount])
{
if(WAIT_object_0?==?WaitForSingleobject(m_ThreadPoll[m_iCurThreadCount]?INFINITE))
CloseHandle(m_ThreadPoll[m_iCurThreadCount]);
}?
}
#else
for(int?i=0;?i {
pthread_join(m_ThreadPoll[m_iCurThreadCount]?NULL);
}
#endif
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-12-28?19:55??ThreadLib\
?????文件?????????712??2013-12-28?19:55??ThreadLib\ReadMe.txt
?????目錄???????????0??2013-05-18?00:11??ThreadLib\ThreadLib\
?????文件????????1510??2013-05-18?00:10??ThreadLib\ThreadLib\AllOSThread.cpp
?????文件????????1028??2013-05-18?00:10??ThreadLib\ThreadLib\AllOSThread.h
?????文件?????????380??2013-05-18?00:10??ThreadLib\ThreadLib\Makefile
?????文件?????????994??2013-05-18?00:11??ThreadLib\ThreadLib\Test.cpp
?????文件?????????733??2013-05-18?00:10??ThreadLib\ThreadLib\ThreadMutex.cpp
?????文件????????1257??2013-05-18?00:10??ThreadLib\ThreadLib\ThreadMutex.h
- 上一篇:C++信號量實現互斥爸爸女兒兒子蘋果橘子
- 下一篇:c語言實現簡單數據庫
評論
共有 條評論