sqlite3.30.1 数据库模块+支持库(彻底解决多线程死锁问题)-易语言

时间:2024-07-03 23:20:02
【文件属性】:

文件名称:sqlite3.30.1 数据库模块+支持库(彻底解决多线程死锁问题)-易语言

文件大小:2.02MB

文件格式:ZIP

更新时间:2024-07-03 23:20:02

2019开源大赛(第四届)

本次更新对于支持库来说,接口改动不大,模块版的话是尽量和支持库接口保持一致,所以对于以前的模块接口可能改动就大了。 要解决多线程问题,主要是对sqlite3的锁机制进行了解,和事务有密切的关系。本次更新的版本在开始事务时,增加了一个 事务锁状态 的参数。 拿简单的话来描述就是 开始事务 时如果 设置了 事务锁状态_ 立即 参数,那么这个时候其他线程的连接就不能写操作了,但是可以读操作,但是在提交事务时也要等待所有读操作完成了才能提交。 设置了 事务锁状态_ 独占 参数,那么这个时候其他线程的连接读写都不可以了。 在等待的时候就处于繁忙状态,我们可以设置 数据库.繁忙超时 ()来设置等待时间。 还有种情况还是会 死锁 ,就是记录集没有关闭,而且这次更新的支持库和模块都是必须 手动关闭记录集 的,所以一定注意。 当然多进程和多线程是一个道理,具体操作看例子。 esqlite3 V1.1 相对于1.0的更新 1、增加了全局命令: S3互斥体进入 S3互斥体退出 S3聚合上下文 S3取数据库自上下文 2、增加了zySqlite数据库 命令 繁忙超时 繁忙处理 取文件名 是否只读 取互斥体 是否自动提交 进度处理 取下一记录集 取总影响行 3、增加了 zySqlite记录集 命令 是否繁忙 是否只读 取数据库句柄 取行数 4、数据库.开始事务() 增加了 事务锁状态 参数,此参数在多线程中非常重要。 5、记录集必须手动关闭,任何内部方法都不再自动关闭。


【文件预览】:
sqlite3.30.1
----sqlite3模块()
--------多线程测试(模块版).e(59KB)
--------zySqlite3.30.1.e(127KB)
--------test.csv(233B)
--------例程(模块版).e(55KB)
--------sqlite3.dll(988KB)
--------zySQLite3.ec(110KB)
----sqlite3支持库()
--------更新说明.txt(455B)
--------例程(支持库版).e(22KB)
--------esqlite31_static.lib(2.29MB)
--------test.csv(233B)
--------多线程测试(支持库版).e(27KB)
--------esqlite31.fne(1.04MB)

网友评论