swoole 协程通信

生活不会放弃你,但也不会放过你。

 

协程通信

协程是基于线程的,而线程在同一个进程中是共享内存的,通信其实并不会有太大的问题,而进程因为有隔离问题的存在,所以进程之间的通信就将明了很多,关于协程的通信,swoole
直接就提供了一个Channel功能来帮助我们实现。

 

Channel概念

Channel,其实可以理解为就是一个消息队列,只不过它是协程间的消息队列,多个协程可以通过push和pop操作来生产和消费消息。
Channel是基于协程的。所以说它没有办法跨进程使用的。

Channel支持多生产者和多消费者协程,底层自动实现了协程的切换和调度,他与Array很类似,仅占用内容,没有额外别的资源申请,因此也就没有IO消耗,效率速度可想而知,他在底层使用的PHP的引用计数实现,没有内存的拷贝问题。

 

posted @ 2023-11-01 10:51  方达达  阅读(36)  评论(0编辑  收藏  举报