之前一直是做php-web开发,从未接触过多线程以及异步模型。最近需要用swoole开发一个websocket服务端,看到文档里面涉及到了好多有关多线程和异步模型之类的概念,我现在该如何系统学习这些知识?
个人认为没什么需要系统学习的,多去墙角面壁反省即可。
很多同学都会遇到类似的问题,根本原因是你的思维模式是同步的,而转换思维模式无法靠外力解决。异步思考更贴近现实,现实中的行为都可以用异步方式解释,即虽然不知道以后会发生什么事情,但是对于特定的事情我所采取的措施是肯定的(如上厕所),也就是说异步模型是由始至终进行推理;相对的,同步模型往往是根据预知的条件以及规定的结果,反向推导其规律。
多线程相对简单一些,有线程管理的意识就行了。
补充说明:思考方式与最终代码是同步还是异步完全无关,但是思考方式不对就很难去理解异步模型的代码代表的思路了,从而形成学习障碍。