线程间的数据库连接共享

CCC00 2006-07-14 08:37:31
近期在封装一个数据库类,考虑到用户可能会在很多地方用到一个相同的Connection,

所以想把Connection做成一个static,让所有方法共享一个Connection,

但这样带来的问题是在多线程下访问时可能会出现并发问题(比如ASP.NET)

因此又多了一种想法,在单线程间共享一个Connection 。(退求其次)

但不知道咋实现,请各位高见!!

部分讨论内容:
http://u18.qzone.qq.com/cgi-bin/cgi_client_entry.cgi?uin=66047391
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
智能大石头 2006-11-10
  • 打赏
  • 举报
回复
只有SqlConnection才能链接池,oledb不知道有没有,不能确定

我也碰到过楼主的问题。

Singleton我也想过,但是,那种方式还是每个对象一个连接对象,而不是每个线程,如果一个页面里面多个地方调用,那就可能有很多连接对象了。如果使用静态,是只有一个,但是所有人都用同一个了。

这个问题,也是近来我要解决的问题。

我建议,使用线程级缓存,使得一个数据库连接对象在整个线程里面有效,而不会与别的线程冲突,你可以看我的文章

http://community.csdn.net/Expert/TopicView1.asp?id=5147435
CCC00 2006-07-14
  • 打赏
  • 举报
回复
兄台可不可以讲详细点
何为"没有竟争"
Singleton模式又是什么东东
CCC00 2006-07-14
  • 打赏
  • 举报
回复
楼上的大哥指点的是

但我觉得只有这样考虑了才会有提高
henryfan1 2006-07-14
  • 打赏
  • 举报
回复
单线程不存在共享的问题,因为没有竟争的情况!
直接采用Singleton模式就可以了.
CCC00 2006-07-14
  • 打赏
  • 举报
回复
路过的帮顶一下涉
www_123du_com 2006-07-14
  • 打赏
  • 举报
回复
呵呵,我说话可能会有点重,希望楼主不要介意:

我觉得以楼主现在的水平,尽量不要做这种事情,需要连接时打开,用完了马上关闭,这就行了。
系统本身有连接池来控制。
你这样的话只会造成更多多余的麻烦,甚至某些隐藏的BUG你可能一时半刻查觉不到。

技术进一步提高了再考虑这样做吧。
CCC00 2006-07-14
  • 打赏
  • 举报
回复
查了下资料,晓得Singleton是什么了

这跟申明一个静态的Connection没什么区别嘛

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧