请问,在多个线程都要访问数据库,请问是在每一个线程中都打开一个数据库联接好,还是所有线程共享一个数据库联接好?
/.????????? 问题点数:20、回复次数:11Top
1 楼linxy2002(BugSlayer)回复于 2004-11-04 08:07:44 得分 5
我建议你用连接池
因为如果每个线程都开一个连接的话,线线程太多就容易死掉,
如果共用一个的话,那用太慢了Top
2 楼onedaytwohole(一天两坑)回复于 2004-11-04 08:18:11 得分 0
连接池是个什么概念
?????????
楼上的不能说的更详细一些吗
?????????Top
3 楼hushuangyan74()回复于 2004-11-04 08:23:36 得分 5
如果是读取数据的话,可以所有线程共享一个数据库联接。如果还要写入记录的话,则两种访问方式都可以,不过要考虑线程之间的同步问题,尤其是几个线程同时写入数据库时,用CEvent,CSemopehore,CCriticalSection等同步对象来保持一次只有一个线程写入。Top
4 楼promaster(财源广进)回复于 2004-11-04 08:30:42 得分 5
频繁的访问数据库的话,可以合理的使用数据连接.
如果只是偶尔的访问数据库的话,那么,使用同一个连接也是可以的.
这个问题要看实际的情况来定,并不是一个标准.Top
5 楼onedaytwohole(一天两坑)回复于 2004-11-04 09:00:31 得分 0
linxy2002(john)
连接池是比较想采的方法
是否是这样做
先声明一个连接对象的数组
线程需要访问数据库时,先查看那个连接对象有空,然后占用,并把这个连接对象的使用标记
置为正在使用
线程使用完数据库后,将这个连接对象的使用标记置为可使用
这样就是连接池
能否这样理解呢Top
6 楼onedaytwohole(一天两坑)回复于 2004-11-04 10:28:22 得分 0
顶Top
7 楼lidr123(清风一瞬)回复于 2004-11-04 10:44:33 得分 0
共享Top
8 楼Chiyer(星羽)回复于 2004-11-04 10:48:14 得分 2
自己看着办吧;
公享的话 效率不高;
如果你的连接不是很多
都开连接吧。。。。。Top
9 楼allenq(黑夜给我黑的眼, 我却用他来翻白眼..........)回复于 2004-11-04 10:51:29 得分 3
呵呵, 以前我用的是一个线程一个数据库连接,
如果共享一个连接, 那不是和单线程差不多了吗?
用数据库连接池, 效果会好一点吧, 不过这样测试麻烦一点, 对程序的稳定性会有点折扣!Top
10 楼onedaytwohole(一天两坑)回复于 2004-11-04 11:10:13 得分 0
决定还是一个线程一个连接Top
11 楼onedaytwohole(一天两坑)回复于 2004-11-04 11:12:09 得分 0
谢谢各位老师Top




