one of the main advantages of co-programming over multithreading is that it actively gives up CPU, rather than CPU preemption.
in this way, many locks can be avoided in order to avoid preemptive locks.
but swoole chooses implicit co-programs, so that for upper-level code, CPU is still preempted by other co-programs (rather than through yield, etc.), which may lead to many problems caused by preemption.
for example, the status of half of the, mysql client queried by mysql and redis has been modified by other protocols, and so on.
I don"t know why swoole uses implicit coordination, and is there a hole in this approach?