*** 作数据库之前对表进行lock, *** 作完后进行解锁。
也可以申请一个互斥变量,每次要 *** 作数据之前申请,结束后释放
前者用的是数据库自己提供的功能,后者是自己控制 *** 作别同时发生。建议用前者。
优化建议:
1 在你的代码里大点评测下 每个 *** 作花的时间 譬如 dom4j解析花了多久, 存储到数据库花了多久等等
2 评测哪些地方可以并行 *** 作以提高CPU利用率;
3 数据库 *** 作部分也可以做适当优化, 譬如批量提交可以显著提高插入速度, 譬如去除索引/主键后插入等;
4 不同机器的IO速度是不同的, 因此应该能提供运行时的任务调度参数化, 譬如多少个dom4j解析线程, 入库的批量数量等;
1共用一个连接就可以
2其实一样可以用lock实现,把数据库 *** 作写成一个函数,函数内加lock。c#会安排他们排队
比如
private static object privateObjectLock = new object();
public static xxoo()
{
lock(privateObjectLock)
{
//数据 *** 作语句
}
}
}
你在一个函数里实现数据库 *** 作。然后线程 *** 作数据库都调用他
以上就是关于delphi 多线程读写数据库全部的内容,包括:delphi 多线程读写数据库、Java多线程并发 *** 作数据库能否提高运行速度。、c# 多线程访问数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)