sqlite数据库连接/锁定问题
发布时间:2020-12-12 19:00:46 所属栏目:百科 来源:网络整理
导读:乡亲 我正在使用sqlite实现基于文件的队列( see my earlier question).我在后台运行以下线程: thread-1将内存结构清空到“队列”表中(插入“队列”表). thread-1读取和“处理”“队列”表每5到10秒运行一次 thread-3 – 很少运行并清除“队列”表中不再需要
乡亲
我正在使用sqlite实现基于文件的队列( see my earlier question).我在后台运行以下线程: > thread-1将内存结构清空到“队列”表中(插入“队列”表). 现在我想要的行为是每个线程获得它需要的任何锁(如果可能的话,等待超时),然后完成事务.如果线程不同时运行也没关系 – 重要的是事务一旦开始就不会因“锁定”错误(例如“数据库被锁定”)而失败. 我查看了transaction documentation,但似乎没有“超时”功能(我正在使用JDBC).可以在连接中将超时设置为大量吗? 我能想到的一个解决方案(未经验证)是拥有最多1个连接的连接池.因此,一次只能连接一个线程,因此我们不应该看到任何锁定错误.还有更好的方法吗? 感谢名单! 解决方法如果是我,我会使用单个数据库连接句柄.如果一个线程需要它,它可以在一个关键部分(或互斥,或类似)中分配它 – 这基本上是一个穷人的连接池,池中只有一个连接:)它可以与数据库做生意.完成后,它退出临界区(或释放互斥锁或?).如果仔细使用单个数据库连接,则不会出现锁定错误.-Don (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |