【问题标题】:What does thread safe mean in a PHP context? [duplicate]线程安全在 PHP 上下文中意味着什么? [复制]
【发布时间】:2012-01-10 04:07:15
【问题描述】:

可能重复:
What is thread safe or non thread safe in PHP

什么是线程安全的或不是线程安全的?

例如,PHP 中的 setlocale() 不是线程安全的:

区域信息是按进程维护的,而不是按线程维护的。如果 您在 IIS 或 Apache 等多线程服务器 API 上运行 PHP 在 Windows 上,您可能会遇到区域设置的突然变化,而 脚本正在运行,尽管脚本本身从未调用过 设置语言环境()。这是由于其他脚本运行在不同的 同一进程的线程在同一时间,改变 使用 setlocale() 的进程范围区域设置。

http://php.net/manual/en/function.setlocale.php

这实际上意味着什么?线程安全是不是一件好事?

在什么情况下您需要线程安全或非线程安全的解决方案来解决您的问题?

【问题讨论】:

  • 您是否阅读了解释它仅与某些网络服务器设置相关的部分?这不是您可以选择或使用的东西。 setlocale 是潜在副作用的一个很好的例子。 (除了它实际上在最近的 Windows 版本上按线程工作。)

标签: php thread-safety


【解决方案1】:

线程安全是一件好事,这意味着虽然可能有多个并发线程,但它们以一种不会出现竞争条件、并发问题等的安全方式相互通信。

线程安全是一个计算机编程概念,适用于 多线程程序的上下文。一段代码是线程安全的,如果 它只以线程安全的方式操作共享数据结构, 这使得多个线程可以同时安全地执行。 制作线程安全的数据结构有多种策略。

Source.

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 2020-05-08
    • 2012-12-17
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多