你问题描述不清楚,那里出问题了?还是不会多线程?还是多线程报错?想别人问题之前自己要先整理出清晰的描述问题的思路,否则很难得到满意的答案哦~~~
创建线程不用多说,我想你肯定知道。
执行插入操作,无非就是在线程中执行 INSERT 语句而已。
注意事项及要点:
1)最好不要多根线程共享一个 Connection 连接对象,否则极可能报错。
2)如果必须多根线程共用一个 Connection 连接对象,必须设置互斥锁。
针对1:在线程方法中创建 Connection 对象,并执行 INSERT 语句。
针对2:用 lock 关键字锁住注资源(如:lock(connection){ 执行 INSERT 语句的代码 })
注1:Connection 对象,不支持多线程并发,因此两个或以上线程同时使用 Connection 对象会发生错误。
注2:利用 lock 关键字的例子,其实就是利用互斥锁保证在某个时间片中,只有一根线程访问连接对象。
追问(如:lock(connection){ 执行 INSERT 语句的代码 })
这个地方不明白。有案例代码啥的吗?
email :[email protected]
追答// 一次仅允许一根线程进入 lock 语句块,从而防止多根线程同时访问连接对象
lock(connection)
{
// 数据库操作代码
}