mongodb的这个helper里面的connection不要做成单例就完事了。没多少并发的,就这样用用就可以啦
如果瞬时并发很高,那就做个connectrion的pool。
这个helper是个静态类,不存在单例,,
pool?是指
虽然没有什么并发,但是确实存在同一瞬间一个线程正在查询,另一个线程吧这个对象给释放了,就抛了。。。
类似于这种:查询的时候就开启一次,查询完毕就释放。
@猫出没: GetServer()里面return的server不要单例
@calvinK:
这个是getserver里面的代码,,不是单例。。。
@猫出没: 刚才看了一下mongo的用法,mongoclient不需要disconnect
http://www.cnblogs.com/kingdomheart/archive/2012/12/29/2839124.html
@calvinK:
看下这篇博客,有帮助,特别是中间一段,可能,你的这个helper写的有些问题,需要修改修改
@calvinK:
大神,这是指这个意思么?
@calvinK: 这个我刚刚在一网站看到的,
@猫出没:
1.多线程安全,就是说是并发安全的,多个线程并发使用不会出问题。
2.是的,看文档说明是他本身内部做了pool处理,不需要自己再去管理了。用完就丢就ok
@calvinK: 太感谢您了,花费时间回答我的问题!
@猫出没: 客气,顺带自己还看了一下mongo的用法(^^)
可以每个线程开启一个连接,也可以做线程同步。
不能做线程同步,小弟做的是一个获取服务器各种指标的东西,其每隔10秒获取一次,是并行的。。
难道真要每隔线程都要开启一个连接了么,,大神还有没有什么办法
@猫出没:
不一定要每个线程开启一个链接,也可以按楼下说的做一个连接池,如果并发高还需要排队。
所以不要纠结了,按楼下说的连接对象不要做成单例。 每次使用创建新的连接就好。
@写代码的小2B: 看来没办法了,,队列就不需要了吧。。。。直接创建新连接吧。。谢谢