我在做一个小模块,用到了两个协程。
一个协程大概的功能就是从队列里取出一些数据,然后根据取到的数据组装成sql,将组装后的sql,压入到协程的chan通道中。
另一个协程从通道中取出sql,并执行,执行sql的时候使用 SwooleCoroutineMySQL 库的query。
我的设想是 SwooleCoroutineMySQL 在query的时候会占用比较多等待时间,在这个等待mysql响应的时候,把下一个需要组装的数据组装好,装入通道,这样可以减少整体的时间占用。
但是结果没有达到我的预期,我的程序还是同步执行,在执行sql的时候,协程并没有让出,而且处于阻塞状态。
是我理解的有问题吗?还是有什么我没注意的地方??
下面是我代码大致的摘抄,并不是实际运行的代码,仅仅用来表述逻辑。
青春有我