Yanxi.me 热爱互联网和技术,喜欢探索的终身学习者

谈谈一心二用

     

从小就被教育做事情要一心一意,不能三心二意。真的一定是这样吗?举几个简单的例子就会发现其实并非如此。比如我们可以在跑步的时候听歌,不会因为在跑步所以听不到歌曲了,也不会因为听歌而忘记跑步。比如我们可以在吃饭的时候看电视或者聊天,不会因为在夹菜所以看不懂电视,或者不会说话。但是如果在跑步的时候听教授讲授高等数学,或者在吃饭的时候面对数百人演讲恐怕就很难完成了。问题出在哪里呢?因为听歌和听高等数学的难度不同,导致所需要耗费的脑力不同。闲聊和发表演讲的难度不同,所需要耗费的脑力也不同。

我们知道电脑可以同时做多件事情,比如可以一边播放着音乐,一边还可以用浏览器上网。让我们来看看计算机是如何做到一心二用的。熟悉计算机编程的人都知道电脑计算全靠 CPU,就算是单核的 CPU 也能同时完成多个任务。编程世界里把这个叫做多线程,比如有两个任务 A 和 B,完成单个任务不需要也没必要占用 cpu 的全部时间,所以可以同时做 A 和 B 两件事情。其实单核 cpu 在同一个时刻确实只能做一件事情,那是如何实现两件事情并行的呢?那是因为大部分的事情都会有阻塞,对于计算机来说,比如读取磁盘、网络、数据库的数据。cpu 在做事情 A 等待的时候可以做另一件事情 B,在 B 等待的时候又可以回来做事情 A,这样来回切换就可以实现同时做两件事情了。并且做完 A B 两件事情的总时间和单独做 A 和 B 的时候差不多。此时:总时间 = 完成A的时间和完成 B 的时间较长的那个。

如果做 A,B 两件事情的时候没有阻塞呢,比如他们都不需要读取数据,也不需要等待别人读取(计算机术语不存在 IO),而是单纯的计算。这时候单核 cpu 还可以同时做 A 和 B 吗?答案也是肯定的,因为 CPU 在这种时候也可以实现切换。但是和第一种情况不同的是,cpu 同时完成 A 和 B 的时间会比单独完成 A 和 B 的时间总和还要长。为什么会出现这种情况呢,因为cpu 需要不断在两件事情上来回切换。此时:总时间 = 完成 A 的时间 + 完成 B 的时间 + 来回切换的时间。

如果我们把电脑类比成 CPU,就很容易解释为什么有时候必须一心一意,有时候又可以一心二用了。当我们做的事情不会百分百消耗大脑资源的时候,这时候一般都会表现得很轻松,比如听歌、闲聊、看肥皂剧的时候。而当需要大脑不停思考的时候,比如听复杂课程的时候、冥思苦想的时候,这时候大脑资源基本上会被百分百被占用。当两件事情都不需要大脑百分之百尽力的时候,我们就可以同时完成它们了。而当事情复杂到大脑抽不出空的时候,就只能一心一意了。要不然不仅不能节约时间,还会因为来回切换浪费到大量的时间,甚至会导致两件事情都做不好。

那什么事情必须一心一意,什么事情可以同时进行呢?这也是因人而异的,即使同一个人在不同阶段也大不相同。就拿最常见的看书和唱歌来说,假如你读的是一本颇有难度的历史书,由于缺乏相应的知识,读起来会很费劲,这时候就很难轻松的一边看书一边哼歌了。但对于一个历史学家来说,看书就像看小说,自然可以哼歌了。反过来如果你要哼的歌还没有学会,看再轻松的文章页哼不出来。

所以我得出的结论是:

  • 尽量把多件简单的事情同时做,做到一心二用,都不会耽误
  • 复杂的事情要一心一意做,否则由于大脑来回切换,效率会更低
  • 通过学习尽量把复杂的事情变成相对自己来说简单的事情

本文参考了李笑来在众创书籍《七年就是一辈子》中多次提到的人脑就是操作系统的概念。