多线程写同一个数据库,为什么会出现数据丢失(sql server08)
我是在写数据库的时候用的互斥信号量。
在线程函数外声明一个静态信号量:
static HANDLE m_hDBMutex;
MySocket::m_hDBMutex=CreateMutex(NULL,FALSE,NULL);
线程函数()
{
……
WaitForSingleObject(m_hDBMutex,5000); //跟这个等待时间有关么?我改了几个时间都是一样的结果
写库(写一条数据)
ReleaseMutex(m_hDBMutex);
……
}
多线程,在写库之前都会等待信号量,写完库然后再释放。没理由会丢失数据,写不进去呀。
注: 一个线程会有上百条数据入库,我是在每一个线程的每一条数据入库时加的信号量。
那位大侠能帮帮忙,很急!!谢谢。