c# 多线程访问数据库

小弟现在写个程序,需要多线程访问数据库,假设现在我有两个事务:T1和T2,数据库里有两条数据E1,E2。有几个问题想请教大家,:1我创建2条线程来代表2个事物访问数据库,... 小弟现在写个程序,需要多线程访问数据库,假设现在我有两个事务: T1 和 T2,数据库里有两条数据E1,E2。有几个问题想请教大家,:
1 我创建2条线程来代表2个事物访问数据库,需要两个connection吗?还是一个就可以?
2 怎么实现线程同步化?对于变量的lock我基本上明白,但是对数据库的访问怎么lock?例如保证T1和T2不能同时update E1,怎么做到?
展开
 我来答
rover1367
推荐于2016-05-24 · TA获得超过253个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:160万
展开全部
1共用一个连接就可以
2其实一样可以用lock实现,把数据库操作写成一个函数,函数内加lock。c#会安排他们排队
比如
private static object privateObjectLock = new object();
public static xxoo()
{
lock(privateObjectLock)
{
//数据操作语句
}
}
}
你在一个函数里实现数据库操作。然后线程操作数据库都调用他
yinheheidou
2009-09-27 · 贡献了超过105个回答
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
创建一个连接的方法,以后直接调用就行了。
在用多线程时一定要注意锁的的问题,用不好很容易导致死锁的。
用lock和montior都行的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旁笑槐NH
2009-09-26 · TA获得超过2545个赞
知道大有可为答主
回答量:2686
采纳率:0%
帮助的人:2896万
展开全部
1.一个就行
2.数据库有自己的锁,一般都可以设置粒度。像同时update E1肯定会上锁的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式