主要是异步,也支持同步的多线程,但是说是不一定好用。以前出现过崩溃,就是一个类在两个线程调度中用了,就出错了。改成PostTask就好了。
这次这个项目参考了一个以前的实现,别人是用两个线程,本来的线程是客户端,新的线程产生了本地服务器,客户端把本地服务器的信息发给远程服务器,远程再访问本地服务器,所以两个线程基本互不干扰。
但是“土人”非说要避免多线程。后来发现确实可以改。我们的模式是一步一步完成小任务,等待的方法是使用一种promise。同步做很容易,在里面等待线程结束即可。异步的话,我估摸着有一些机制就是可以唤醒消息循环,所以访问本地服务器的消息和最后结束的消息在消息循环里面处理了。让年轻人试试,到时候我也学习一下
【 在 ziqin 的大作中提到: 】
: 其实就是asio的设计吧。iocontext.run可以让用户来选择由哪个thread来跑。彻底把task/scheduler/worker去耦合了
--
FROM 98.42.143.*