🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Table [TOC] swoole\_table一个基于共享内存和锁实现的超高性能,并发数据结构。用于解决多进程/多线程数据共享和同步加锁问题。 > 最新版本已移除`lock`和`unlock`方法,请使用`Swoole\Lock`来实现数据同步 > > 请谨慎使用数组方式读写`swoole_table`, 建议使用文档中提供的API来进行操作. 数组方式取出的`swoole_table_row`对象为一次性对象, 请勿依赖其进行过多操作 ## swoole\_table的优势 * 性能强悍,单线程每秒可读写`200万`次 * 应用代码无需加锁,`swoole_table`内置行锁自旋锁,所有操作均是多线程/多进程安全。用户层完全不需要考虑数据同步问题。 * 支持多进程,`swoole_table`可以用于多进程之间共享数据 * 使用行锁,而不是全局锁,仅当`2`个进程在同一`CPU`时间,并发读取同一条数据才会进行发生抢锁 > `swoole_table`不受`PHP`的`memory_limit`控制 > `swoole_table`在`1.7.5`以上版本可用 ## 遍历Table swoole\_table类实现了迭代器和Countable接口,可以使用foreach进行遍历,使用count计算当前行数。 > 遍历Table 依赖pcre 如果发现无法遍历table,检查机器是否安装pcre-devel ~~~ foreach($table as $row) { var_dump($row); } echo count($table); ~~~