从网上看到有人发过,不过总有些小问题,小程序经过测试是可以的。
注:运行环境:VS2005,boost 1.46.1
#include <Windows.h>
#include <process.h>
#include <boost/thread/shared_mutex.hpp>
#include <boost/thread.hpp>
using namespace std;
typedef boost::shared_mutex rwmutex;
typedef boost::shared_lock<rwmutex> readLock;
typedef boost::unique_lock<rwmutex> writeLock;
rwmutex _rwmutex;
int cc_count = 0;
void __cdecl readOnly(LPVOID lpParameter)
{
readLock rdLock(_rwmutex);
//do something...
}
void __cdecl writeOnly(LPVOID lpParameter)
{
writeLock wlock(_rwmutex);
//do something...
}
int _tmain(int argc, _TCHAR* argv[])
{
for (int i=0;i<15;i++)
{
_beginthread(readOnly, 0, 0);
_beginthread(writeOnly, 0, 0);
}
Sleep(INFINITE);
return 0;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。