我想知道是否有可能在Linux下使用POSIX线程库实现以下逻辑。
given a mutex
if (I can get the mutex) {
lock the mutex
call fun A
unlcok the mutex
}
else {
call fun B
}
我是Linux下的线程编程新手,所以只需使用伪代码来显示我正在寻找的代码片段的逻辑即可。
".laccdb“或".ldb”文件用于确定哪些记录被锁在共享数据库中以及由谁锁定。
在determine which records are locked中 lock 一词是什么意思?换句话说--记录何时被锁定?例如:假设锁文件指示记录10已被锁定,那么它是否意味着其他人正在读取该特定记录或写入该特定记录或两者兼而有之?<code>H 211</code><code>G 212</code>
在这些条件下,sql中是否会出现争用条件?
如果我在一个线程中运行此SQL更新,则将其称为语句1:
Update Items
Set Flag = B
where Flag = A;
这个SQL更新运行在另一个称为语句2的语句中:
Update Items
Set Flag = C
where Flag = A;
每个线程是否可以读取Flag等于A的相同记录,并使用自己的值写入该记录?这样语句1可以先写它,然后语句2再写它,或者反之亦然?
这个问题的答案取决于数据库以独占方式锁定更新的时间。它是在找到记录之前还是在找到记录并计算where子句之后发生的?