php - 线程安全是 PHP 5.4 中的一个真正问题吗?

标签 php thread-safety

是否有可能,在我的 PHP 5.4.0 应用程序(IIS、FastCGI、非线程安全)中,两个人通过在完全相同的时间运行相同的代码来更新数据库中的同一个表,并且无意中弄乱了彼此的表数据?

我问的原因是因为我偶尔会看到无法解释的数据故障,在最近的案例中,我发现另一位客户恰好在同一时间更新了同一张表。

我的问题的第二部分是,如果这确实发生了,我该如何预防?

最佳答案

如果您在不使用事务的情况下在每个请求中执行多个 SQL 语句,那么这是很有可能的。 SQL 语句是原子的,就像事务包装的语句序列一样,因此不应出现“故障”。

此外,如果您在 SQL 以外的任何地方(例如平面文件)之间的不同请求之间共享状态,显然线程安全至少会受到损害。

第二部分:使用事务:)

关于php - 线程安全是 PHP 5.4 中的一个真正问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13714267/

相关文章:

javascript - 删除 PHP 中所有 REAL Javascript 注释

php - Internet Explorer css 样式在引用 php 页面回发后中断

php - 如何按一列排序,然后将同一列 ID 的最新 block 推到顶部?

iOS 使用 detachNewThreadSelector 卡住和线程化

java - Android中HandlerThread的安全性

java - SWT 线程 : GUI not responding even after calling thread. stop()

php - Cakephp 3 的复杂 JSON

php - 检测第一个字母字符

c# - 发生故障时创建新的 ChannelFactory<T>

objective-c - 是ThreadedCoreData示例(来自Apple)在主线程上创建NSManagedObjectContext吗?