zoukankan      html  css  js  c++  java
  • 基础知识

    1、设置回调函数方式

    - 匿名函数

    <?php
    
    $service->on('Request', function ($req, $resp) use ($a,$b){
        echo 'hello world';
    });

    - 类静态方法

    <?php
    
    //类静态方法
    class A
    {
        static function B($req, $resp)
        {
            echo 'hello world';
        }
    }
    $service->on('Request',A::B);
    $service->on('Request',array('A','B'));

    - 函数

    <?php
    
    //函数
    function B($req, $resp)
    {
        echo 'hello world';
    }
    $service->on('Request','B');

    - 对象方法

    <?php
    
    //对象方法
    class A
    {
        public function B($req, $resp)
        {
            echo 'hello world';
        }
    }
    $obj = new A();
    $service->on('Request',array($obj,'B'));

     2、进程

    - Master 进程是一个多线程进程,

    - Reactor 线程负责维护客户端 TCP 连接(数据缓存、拼接、拆分成完整请求数据包)、处理网络 IO、处理协议、收发数据。

    - Worker 进程接受 Reactor 线程投递的请求数据包,并执行回调函数处理数据,将处理结果发给 Reactor 线程,再又 Reactor 线程发给 TCP 客户端。

    - TaskWorker 进程处理 Worker 进程投递的 task 任务。

    - Maneger 进程负责创建、回收 worker/task 进程。

    一个更通俗的比喻,假设 Server 就是一个工厂,那 Reactor 就是销售,接受客户订单。而 Worker 就是工人,当销售接到订单后,Worker 去工作生产出客户要的东西。而 TaskWorker 可以理解为行政人员,可以帮助 Worker 干些杂事,让 Worker 专心工作。

    补充:

    进程:

    一个进程就是一个正在运行的程序。进程会在系统中驻存,申请自己的内存空间、系统资源。进程核心内容为内存和上下文环境。资源分配最小单位。

    线程:

    轻量级进程,是操作系统调度(CPU调度)执行的最小单位。

    线程作为进程的小老弟,只有进程拿到资源后,所有线程才能共享该进程的所有资源。当然了,一个进程可以有多个线程,但是小老弟共享了资源必须效忠老大哥,它只能属于大哥一个人。

    然后我们再来说下协程。

    协程:

    可以简单理解为线程,但是协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。

    协程容器:

    看做启用协程的入口,所有的协程都必须在协程容器中创建。

    管道:

    协程间的消息队列,用作协程之间的通讯。(只能进程里的协程间通讯,无法跨进程通讯)

    3、server 两种运行模式

    SWOOLE_PROCESS 进程模式,适用业务逻辑复杂的场景,提供了进程管理、内存保护机制。涉及多个进程间通信。

    SWOOLE_BASE  传统异步非阻塞,直接由 worker 进程负责连接和执行。性能更好。

    参考文章:https://blog.csdn.net/daaikuaichuan/article/details/82951084

  • 相关阅读:
    腾讯招聘爬虫
    中华人民行政部网站爬虫
    百度翻译爬虫
    easyui 对form扩展
    Anaconda 安装和使用
    MongoDB基础教程系列--目录结构
    MongoDB基础教程系列--第九篇 MongoDB 分片
    MongoDB基础教程系列--第八篇 MongoDB 副本集实现复制功能
    MongoDB基础教程系列--第七篇 MongoDB 聚合管道
    MongoDB基础教程系列--第六篇 MongoDB 索引
  • 原文地址:https://www.cnblogs.com/suojian/p/13229571.html
Copyright © 2011-2022 走看看