我在this example中注意到第15行$this->rows[]=$row;
会出现段错误的注释。但我不明白为什么。有人可以向我解释一下吗?
答案 0 :(得分:2)
它将出现故障或意外行为(当前版本不应出错)。
原因是成员$this->rows
不是线程安全数组,它是正常数组。
正常数组被序列化以作为对象的成员存储,所以
$this->array[] = $row;
没有意义;您无法附加到序列化数组。
在示例中,它在方法范围内构建$rows
并使用$this->rows = $rows;
一次设置对象成员。
线程安全数组,它是一个Threaded对象(它们都像数组一样,并带有一些合理的操作方法,如pop和shift),没有相同的限制。
答案 1 :(得分:0)
根据Github上的Blame工具,我们应该尝试分页Joe Watkins(@krakjoe)......
编辑:就我自己而言,“内存不足”错误是我能想到的最好的主意。 (谷歌搜索有问题的行,只有有用的结果是关于低内存限制)