当前位置: 首页 > 科技观察

吃快餐也能学会串行并行并发

时间:2023-03-19 10:40:37 科技观察

吃快餐和外出就餐很头疼。用我大学室友的一句话来形容:如果不是不吃饭,他就不吃饭。无论学生还是上班族,吃饭都是一件让人头疼的事情。有食堂的公司员工在争论到底是在公司食堂吃饭还是在外面吃饭,而没有食堂的公司员工在争论到底是吃面条还是米饭。每次吃饭的时候,和同事去吃饭的时候,都会问一句废话:吃什么?然后相视一笑,继续吃快餐。..我们也可以通过吃快餐来学习一些知识。让我一一告诉你。快餐一个明显的特点就是:排队!!!目前看到的有以下几种排队方式,分别对应我们今天要说的串行、并发、并行。现在我们公司附近的快餐店,人少的时候,排成一排,如下图,大家排好队,直往前走。他们会为您点餐。这种方法应该是很多快餐店都采用的,而且易于管理。不过需要强调的一点是,如果学生只想吃米饭和豆芽,还是需要排队到最后一个收银台结账。这在我们的计算机世界里其实就是一个连环,一个队,依次有序的执行。不过上面的排队方式已经支持不了12点的高峰期了,我们分分钟排队去外面晒太阳。这个时候为了提高效率,因为快餐店里面还有空地,所以我们增加了一套做饭设备和工作人员,这个时候排长队的问题就很好的解决了。这时候是平行的。两套烹饪设备和工作人员互不干扰,完全独立。每套设备都能解决每个客户的订货需求。.当然,这个要求比较高。餐厅需要有足够的空间来容纳两套设备,并且需要雇用两倍的员工来为顾客服务。这类似于双核计算机。除了上面两种快餐排队方式,我还看到了下面一种。烹饪设备只有一套,但是队列很多,每道菜排成一行(现实中不是只有一道菜,而是多道菜,这里画图简化成一道菜),大家只需要排队自己想吃的菜,这道菜就好比是电脑的各种资源,比如CPU,IO等等,人就像一个个进程,有的只需要CPU计算资源,而有些还需要IO资源。各取所需。这种方法是并发的。这种烹饪方法需要与上述第一种相同的资源:一套烹饪设备和员工。每个顾客最终都需要去到结账的环节,而结账只有一个,就是类似电脑的单核。总结那么回到计算机世界,这三个是什么?早期的计算机只有一个CPU,即所谓的单核计算机,只有一个CPU来执行任务,所以一次只能运行一个任务。跑完了再让下一个任务跑,这是串行的。后来因为进程和线程的概念,他们让任务以进程的形式运行,拆分成多个时间片,而不是一次运行。这样,在一个CPU的运行过程中,多个任务可以并发执行。这个时候还是只有一个CPU,一个时间点只执行一个任务。并行性的实现是因为CPU硬件的发展和多核CPU的出现。可以同时执行多个任务。上面用快餐排队的现象来解释串行、并行、并发三个概念。你明白吗?如果你不明白,可能是我解释得不够透彻。可以留言给我建议;如果你明白了,能否帮忙转发一下,谢谢!