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