因为最近要重写以前写的Ado.NET的包装类,现在想搞清楚DbConnection的各子类是否具有多线程安全性,因为想让多线程代码共用一个DbConnection,麻烦知道的朋友指点一二.
DbConnection的任何公共静态成员都是线程安全的,但不保证所有实例成员都是线程安全的。
数据库引擎有各种实现策略,对于某些引擎,当一个DBConnection被一个静态游标(例如某种DBReader)锁住的时候,此时你不关闭这个Reader,直接将DBConnection用于另外一个查询,数据库引擎就会告诉你这个DBConnection不能用于其它查询(否则现有的游标就被毁了),这跟单线程、多线程毫无关系.
没有,可以用Static,Static的是线程安全的
不具有
如果需要有的话得lock
@重典
static不是线程安全的吧?