采用多线程的方法访问数据,同时连接多个不同的数据库,可结果并非实际所想,线程是并发生成,可数据库访问结果并非并行,尤其在数据库连接不上直至超时,感觉好像数据库连接同一时间只能一个的样子。线程如下,难道有问题吗?还望答复
UINT CheckDBFunc(LPVOID pinfo)
{
::CoInitializeEx(NULL,COINIT_APARTMENTTHREADED );
_ConnectionPtr m_pConn;
_RecordsetPtr m_pRecord;
..........
....//连接、操作数据库
.............
::CoUninitialize();
return 1;
}
这和数据库有关,Oracle、SQL Server以及MySQL等数据库是不会有这样的情况发生的。MDB使用时有会有这样的情况,使用ODBC则不会。
在我设计过的系统中,每个客户线程单独使用一个数据库连接,这样做效率不错,操作SQL Server以及MySQL也不会有问题,同时数百个客户线程也就是说同时数百个数库连接也不会有问题。