前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容。这其实是工作与学习的矛盾。我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术。
可是你不可能一辈子都写业务代码,而且跳槽之后新单位很可能有更高的技术要求。除了干巴巴地翻书,我们可以通过两个方式来解决这个问题:一是做业余项目,例如在github上传自己的demo,可以实际使用;二是把自己的学习心得写成博客,跟同行们互相交流。
3.1 线程的初窥门径
我们在之前的文章里提到的程序其实都是单线程程序,也就说启动的程序从main()程序进入点开始到结束只有一个流程。然而,有时候我们设计的程序需要有多个流程,也就是所谓的多线程(Multi-thread)程序。
我们可以通过一个龟兔赛跑的游戏开始学习单线程和多线程的区别。乌龟和兔子赛跑,起点到终点为10米,每经过一秒,乌龟会前进0.1米;兔子可能前进1米或睡觉。如果使用单线程,我们可以这样设计:
延伸阅读
学习是年轻人改变自己的最好方式