文件名称:获得一个独享锁-tdc-gp30 external circuit for gas meters application note
文件大小:1.95MB
文件格式:PDF
更新时间:2024-06-29 08:14:36
SQlite 学习教程
3.8 获得一个独享锁 在修改数据库文件本身之前,我们必须取得一个针对此数据库文件的独享锁。取得此锁的过程是分二步走的。首先 SQLite 取得一个“临界”锁,然后将此锁提升成一个独享锁。 一 个临界锁允许其他所有已经取得一个共享锁的进程从数据库文件中继续读取数据。但是它会阻止新的共享锁的 生成。也就说,临界锁将会防止因大量连续的读操作而 无法获得写入的机会。这些读取者可能有一打,也可能上 百,甚至于上千。任何一个读取者在开始读取之前都要申请一个共享锁,然后开始读取它需要的数据,然后 释放 共享锁。然而存在这样一种可能:如果有太多的进程来读取同一个数据文件,在老的进程释放它的共享锁之前总是 会有新的进程申请共享锁,因此不会存在某一 时刻这个数据库文件上没有共享锁的存在,也因此写入者不会拥有 取得一个独享锁的机会。临界锁的概念可以使现有的读取者完成他们的读取,同时阻止新的读取者 读取,最后所 有的读取者都读完之后,这个临界锁就可以被提升为独享锁了。. 77 / 123