php进程间通信-消息队列

为什么需要进程

进程是系统进行资源分配和调度的基本单位。进程作为程序独立运行的载体,保障程序正常执行。进程的存在使得操作系统资源的利用率大幅提升。

消息队列

消息队列是在消息的传输过程中保存消息的容器。消息队列管理器相当于消息发送者和接收者的中介。消息队列的主要目的是创建路由并且保证消息可靠传递;如果发送消息时接收者不可用,消息队列会保留消息,直到有人接收它。

消息队列可提供临时存储的功能并且能保证消息可靠的传递,我们正好使用它实现进程间通信。当然消息队列不单单用于进程间通信,他的应用领域非常广。比如消息队列非常适用于解决消费者和生产者的问题,因为生产者和消费者之间总会存在『速度差』。比如生产者突然少了10个,两边处理的速度就会不平衡,会导致排队阻塞,服务不可用。这肯定不是我们想看到的,如果这时候引入消息队列将两个系统解耦,无论谁慢了都不会影响整体业务。

代码实现

 0){
        unset($childList[$pid]);
        echo "{$pid}\n";
    }
}

运行结果

php进程间通信-消息队列_第1张图片

环境

  • pcntl扩展:主要的进程扩展,完成进程创建于等待操作。
  • sysvmsg扩展:实现system v方式的进程间通信之消息队列。

你可能感兴趣的:(php,pcntl,进程间通信)