线程安全在PHP上下文中意味着什么?

时间:2011-11-30 22:48:21

标签: php thread-safety

  

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

什么是线程安全的东西是什么意思?

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

  

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

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

这实际上是什么意思?什么东西是线程安全的,这是件好事吗?

在什么条件下,您需要一个线程安全或非线程安全的解决方案来解决您的问题?

1 个答案:

答案 0 :(得分:4)

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

  

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

Source