swoole一键协程化(TCP Socket类型的stream)

2021-10-31
use Swoole\Coroutine;
use function Swoole\Coroutine\run;

// TCP Socket类型的stream一键协程化,包括最常见的Redis、PDO、Mysqli以及用PHP的streams,soap;可以将原生php函数从同步IO变为异步IO
Coroutine::set(['hook_flags'=> SWOOLE_HOOK_TCP]);

run(function() {
    for ($c = 100; $c--;) {
        go(function () {//创建100个协程
            $redis = new Redis();
            $redis->connect('127.0.0.1', 6379);//此处产生协程调度,cpu切到下一个协程,不会阻塞进程
            $redis->get('key');//此处产生协程调度,cpu切到下一个协程,不会阻塞进程
        });
    }
});

 

{/if}