Swoole v6 正式发布

Swoole v6 正式发布,增加了 16 项新功能,主要如下:

  1. 多线程支持 :支持类似 NodeJS Workers Thread 的真正多线程,基于 PHP ZTS 实现,使用简单且无数据竞争问题。提供Swoole\Thread类用于创建线程,在线程中可使用协程 API 实现异步非阻塞 IO。
  2. 多线程服务器 :服务器端模块适配多线程,提供SWOOLE_THREAD模式,Event Worker、Task Worker 以及 User Worker 改为创建线程执行,工作线程间可传递ArrayListMap等资源共享数据。
  3. 新增线程安全数据容器 :提供ArrayListMapQueue 3 种数据容器。ArrayListMap实现ArrayAccess接口可当 PHP 数组用,Queue是先进先出队列可作线程间消息通信容器。容器支持多维嵌套,且是线程安全的,读写操作底层自动加锁。
  4. 新增线程同步工具 :包括Swoole\Thread\LockSwoole\Thread\AtomicSwoole\Thread\Barrier等,还提供Thread::join()Thread::joinable()Thread::detach()等方法用于线程管理和同步。
  5. 文件异步操作优化 :文件异步操作支持使用io_uring作为底层引擎,安装liburing并在编译 Swoole 时开启--enable-iouring,相关文件操作函数的异步操作将由io_uring实现,且io_uring支持多线程轮询模式ioring_setup_sqpoll
  6. 协程支持优化 :升级boostcontext版本到 1.84,龙芯 CPU 也能够支持协程。
  7. 新增数据容器方法 :新增Swoole\Thread\Map::find()Swoole\Thread\ArrayList::find()Swoole\Thread\ArrayList::offsetunset()方法。
  8. 新增进程和线程方法 :新增Swoole\process::getaffinity()Swoole\Thread::setname()Swoole\Thread::setaffinity()Swoole\Thread::getaffinity()Swoole\Thread::setpriority()Swoole\Thread::getpriority()Swoole\Thread::gettid()方法。
  9. 新增 Iouring 配置相关 :新增iouring_workers修改iouring线程数,新增iouring_flags支持修改iouring工作模式。
  10. 新增多线程同步屏障 :增加Swoole\Thread\Barrier多线程同步屏障。
  11. 新增设置 Cookie 函数:增加新的设置 Cookie 的函数。
  12. 新增互斥协程锁:新增 "非阻塞,可重入的互斥协程锁",可在进程间 / 线程间使用,且不阻塞进程 / 线程。
  13. Socket 优化Swoole\coroutine\socket::getoption()支持tcp_info选项。
  14. 客户端优化Swoole\client同步阻塞客户端支持 http 代理,新增异步非阻塞的 tcp/udp/unix socket 客户端Swoole\async\client
  15. Redis 服务器优化 :优化Swoole\redis\server::format()方法,支持内存零拷贝,支持 redis 嵌套结构。
  16. 支持高性能压缩工具 :支持高性能压缩工具zstd,编译 Swoole 时加上--enable-zstd,http 客户端和服务端之间便可使用zstd来压缩响应或者解码响应。
相关推荐
Mart!nHu24 分钟前
Android 10&15 Framework 允许设置系统时间早于编译时间
android
编程之路从0到11 小时前
ReactNative新架构之Android端TurboModule机制完全解析
android·react native·源码阅读
iloveAnd2 小时前
Android开发中痛点解决(二)兼容性:AndroidX和gradle版本的兼容性
android·兼容性·androidx
stevenzqzq3 小时前
DataStore基本使用教程
android
LawrenceMssss3 小时前
由于创建一个完整的App涉及到多个层面(如前端、后端、数据库等),并且每种语言通常有其特定的用途(如Java/Kotlin用于Android开发,Swift/Objective-C用于iOS开发,Py
android·java·ios
chen_mangoo4 小时前
HDMI简介
android·linux·驱动开发·单片机·嵌入式硬件
阿里-于怀4 小时前
AgentScope AutoContextMemory:告别 Agent 上下文焦虑
android·java·数据库·agentscope
Larry_Yanan5 小时前
Qt安卓开发(三)双摄像头内嵌布局
android·开发语言·c++·qt·ui
粲然忧生5 小时前
腾讯云终端性能监控SDK正式上线,为鸿蒙开发适配保驾护航
android·腾讯云·harmonyos
我命由我123455 小时前
Kotlin 开发 - Kotlin Lambda 表达式返回值
android·java·开发语言·java-ee·kotlin·android studio·android-studio