首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WordPress是否正确地处理并发性和原子性?

WordPress是否正确地处理并发性和原子性?
EN

WordPress Development用户
提问于 2023-05-10 18:04:55
回答 1查看 119关注 0票数 2

看看这个伪代码:

代码语言:javascript
复制
$b = SELECT balance FROM accounts WHERE user='john'
$b -= 10
UPDATE account SET balance=$b WHERE user='john'

代码从约翰的银行账户中提取了10美元。但是,如果您不使用事务或互斥对象,并且代码同时运行两次,那么余额最终只会减少10,而不是20。

但是由于代码运行得非常快,所以风险很低。这也是一个糟糕的例子,因为这两个查询可以组合成一个:UPDATE account SET balance=balance-10 WHERE user='john'

因此,即使您完全忽略事务,错误发生的风险也很低。

我想知道WordPress是否真的冒了这个险?我搜索了源代码,找不到任何事务,也找不到任何排他性锁,比如文件锁。

我还看到有人写了一个名为WP_锁定的库。在自述中,它说:

因为WordPress不是线程安全的

我想他的意思和我一样。

Does WordPress同时正确地处理请求,还是仅仅承担风险?

这里有一个Apache安装,我验证了如果有两个HTTP请求,两个PHP文件可以同时(同时)运行。每个请求都有自己的过程。

(我想补充一点,原子性也是个问题。例如,如果您有两个INSERT查询,并且在第一个查询之后出现电源中断,那么它将使DB变得不一致。)

EN

回答 1

WordPress Development用户

发布于 2023-05-10 18:48:55

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/415953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档