很久没有更新,协程库了。最近有空重新了更新了下。
相比上版本。
去除了所有hook,现在只使用系统api接管主线程的消息循环,提高稳定性
支持多线程调度,线程数量自己设置,实现了窃取算法,当有工作线程空闲会去偷其他线程的协程任务来执行。
栈空间现在能设置最小8kb,是独立栈。
多线程调度下协程可以跨线程恢复。
移除了协程事件,等到下版本重新封装。
注意事项:
注意主线程现在不能使用任何堵塞语句,不然会堵塞一些任务。如果使用的是多线程调度开了负载均衡也会有少量堵塞任务无法转移线程。
注意协程任务可以转移线程执行,如果你使用了线程局部变量可以会有一些意料外的情况需要处理。
注意协程何时会被其他线程运行,当协程任务在协同等待库带的锁,通道时不会转移线程,如果你使用任务休眠,任务切出,就有可能出现协程被其他工作线程恢复执行
库是由DLL封装的,介意可以自己提取文件调用。
附上一个单线程调度的简单例子