php使用swoole框架静态变量,全局变量并发安全问题
我们在首次使用 Swoole 框架时候发现有三类变量问题需要主要,问题的主要造成因素应该是 Swoole 常驻内容变量内存共享导致的主要有一下三类使用 global 关键词声明的变量使用 static 关键词声明的类静态变量、函数静态变量PHP的超全局变量,包括$_GET,$_POST,$GLOBALS等 这三种类型的变量在 Swoole 模式下都存在并发安全问题Swoole 变量问题 A,B,C三人依次访问设置变量分别为1,2,3程序返回时分别对A,B,C三人的请求进行延迟3,2,1秒按照正常逻辑来看A,B,C三人访问设置的1,2,3那么对应返回的值就是设置的值,但是通过使用swoole发现三人返回的结果为最后一个人设置的值也就是3这种情况就是我们刚才所说的三类变量问题Swoole 全局变量 Global 问题演示 // 数据混乱演示
public function index()
{
// 并发安全问题,会出现数据混乱
// 第一次访问 http://192.168.100.103:8088/Context/index?i=1
...