购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.并行串行

读中学的时候,我们就在物理课上得知电路有两种基本连接方式:串联和并联。此外,我们还背过一些相关的规律,如“串联分压、并联分流”。在任务管理的过程中,可以运用类似的方式去思考任务与任务之间的关系:这两个任务之间究竟应该是串行关系,还是并行关系?

无论学到什么东西,都可以接着问自己:“那……这个道理还可以运用在什么地方?”

反复问自己这种简单问题,能够锻炼自己融会贯通、举一反三的能力。尽管总是有人劝诫“速成没戏”,但还是有人宣扬各种速成的方法,并且信者大有人在,宛若“野火烧不尽,春风吹又生”。为什么呢?上过中学的人都应该明白“省功不省力、省力不省功”的物理原理啊!其实,这些人缺乏的就是这种思考能力或者说思考习惯。

弄清这个问题非常重要,因为在一般情况下,“提高效率”指的就是“原本只能串行完成的两个任务现在可以并行完成”。

有些任务只能串行,例如要先洗手再吃饭。“洗手”和“吃饭”,不仅是串行关系的任务,还是顺序确定的任务。尽管确实有人真的“不洗手先吃饭而后再洗手”,但是大多数人还是能够看到这样做事的明显荒谬之处,而且,我们没办法也没必要“边洗手边吃饭”。

俗话说“一心不可二用”,从某种意义上理解,这句话是正确的。不过我们也确实很难做到一心一意地长期只做一件事,事实上,我们随时随刻要做的事情可能都不少于两件。一些早期的计算机操作系统,如微软的DOS,是单任务操作系统;为了提高效率,程序员们又开发出了多任务操作系统,如现在的Windows。从发展的角度看,为了提高效率,我们也有必要给自己的大脑打造一个“多任务操作系统”。

最直接的办法是尽量将两个任务并行。例如,在跑步的时候听英语,在写文章的时候听音乐,在等班车的时候看书等。养成一个习惯—把要做的事情用纸和笔写下来,把任务落到纸面上,就可以比较容易地分辨出哪些任务是简单而又机械的,哪些任务是相对复杂而又灵活的(对我个人来讲,需要思考的就是“非机械”的),然后,尝试把一个非机械的任务和一个机械的任务搭配起来完成。

举两个我自己的例子。

跑步是机械的,听有声读物是非机械的(相对需要集中更多注意力),这两件事情就可以一起做。另一个例子是我在写文章的时候往往同时听着音乐,甚至在另外一块屏幕上放着电影。我可以这么做是有前提的:我的电脑接了两台显示器,并且都是25英寸宽屏。在这种情况下,即使同时播放两部电影,我的屏幕上还是有足够的空间。另一个我可以这么做的原因是我看过的电影太多(这两年是每天至少一部),以至于我对电影的理解能力非常强(就好像文章读多了阅读理解能力就会很强一样),大多数电影我只需要间或扫一眼就可以,而且不会错过重要的细节。但是,对一些比较特别的电影,如《福斯特对话尼克松》、《朗读者》、《革命之路》、《是,大臣》等,我就做不到边写文章边看,而是需要停下手中的事情专心地看。

有声读物:Audiobook。

现在,几乎所有的健身房都在跑步机前摆放了一台电视,只不过电视节目很无聊而已。

《福斯特对话尼克松》:Frost/Nixon,2008。根据1977年大卫·福斯特对理查德·尼克松的电视采访改编的美国/英国/法国历史剧情电影。参见goo.gl/Yte6Y,goo.gl/7avpp。

《朗读者》:The Reader,2008。美国/德国剧情电影。参见goo.gl/Tyjj0,goo.gl/dGfl6。

《革命之路》:Revolutionary Road,2008。美国/英国爱情电影。参见goo.gl/i6KIH,goo.gl/GwHCL。

《是,大臣》:Yes Minister,1980—1984。英国电视情景喜剧。参见goo.gl/lSVlZ,goo.gl/LYy2s。

并行两个任务的一个重要前提是执行者足够了解这两个任务,且对自己有足够清楚的认识,即,对执行者来说,这两个任务是“主动并行”的。被动发生的并行任务往往只能使效率变得更为低下。我在生活中生生剔除的一个被动并行任务就是“接电话”。从好多年前开始,我就把自己的手机设定为“静音”状态,从不主动接电话—而是每隔一两个小时查看一下电话,有必要的就打回去。当我有条件给自己安排一间不受人打搅的“工作室”后,终于再一次大幅削减了“被动并行”造成的时间和精力的浪费。

当一个任务比较庞大,需要划分为多个步骤或者多个子任务的时候,对这些子任务之间的关系需要仔细甄别。甄别后,可能会因此产生若干行动方案,而针对这些方案可能还需要反复衡量才能找到最佳方案。

华罗庚先生曾经用烧水泡茶为例说明过这个问题。

华罗庚:1910年11月12日—1985年6月12日,生于中国江苏省金坛市,卒于日本东京。著名数学家,中国科学院院士,美国国家科学院外籍院士。他是中国解析数论、典型群、矩阵几何学、自守函数论与多元复变函数等很多方面研究的创始人与奠基者,也是中国在世界上最有影响力的数学家之一。参见维基百科goo.gl/WgDmU。

烧水泡茶:参见《统筹方法平话及补充》,华罗庚著,中国工业出版社,1966。

▷办法甲:洗好开水壶,灌上凉水,放在火上,在等待水开的时候,洗茶壶、洗茶杯、拿茶叶,等水开了,泡茶喝。

▷办法乙:先做好一些准备工作,洗开水壶,洗壶杯,拿茶叶,一切就绪,灌水烧水,坐待水开了泡茶喝。

▷办法丙:洗净开水壶,灌上凉水,放在火上,坐待水开,开了之后急急忙忙找茶叶,洗壶杯,泡茶喝。

哪一种办法更省时间呢?

谁都能看出第一种办法好。原因很简单:有些任务被并行处理了。可以如此优化的前提是“大任务被划分成足够多又不太多的小任务”。有了这样的前提,才有能力分辨哪些任务可以并行—所谓的“优化”,其实是很简单的。

如果不进行划分(事实上大多数人真的如此),那么就只有一个任务—喝茶。然而,如果能粗略划分一下的话,就知道起码可以划分为两个子任务,也就是“烧水”和“泡茶”。但这样还不够,因为划分之后的两个子任务是串行关系,先后顺序明了,没有可以优化的余地。如果再继续划分子任务的话,就得找出有并行关系的任务,进而提高效率。

在麦当劳之类的快餐店中排队也会涉及串行和并行的问题。有很多人是轮到自己的时候才抬头看柜台上面的菜单,再花很长时间作出选择,而实际上,完全可以把“排队”和“选菜”并行,这样的话,轮到自己的时候只需几句话就可以端着菜去吃了。有一次我为了观察,特意排了个10人长队,结果所有人都是在轮到自己的时候才开始选菜的。有过这样的经历,我就决定以后除非无须排队或者排队的人很少,否则我绝不在类似的餐馆吃饭,不然会被迫浪费时间。

让自己拥有“多任务操作系统”的另一个方法就是切分自己的时间。从本质上说,我们的大脑与计算机的中央处理器(下文简称“处理器”)一样,是个一次只能处理一项任务的系统。那么,计算机究竟是如何做到同一时间处理多项任务的呢?(没有多任务处理机制,就无法实现如今人们习以为常的多视窗操作系统。)

一个处理器在一个时间段内其实只能做一件事,因为它只有一个个体、一个时空。而多任务操作系统把一个长时间段划分成很多短小的时间片,每个时间片只让处理器执行一个进程—尽管同时可能有多个进程需要处理。在第一个时间片里,操作系统让处理器处理A进程;时间片的时间用完之后,无论A进程处理到什么程度,都要被“挂起”(即,A进程这时不能再占用处理器资源—尽管它还是被允许使用计算机的其他资源,如内存、磁盘、屏幕输出等);在第二个时间片里,处理器处理的是B进程,时间用完之后,B进程将与A进程一样被中途“挂起”;而后,处理器开始处理下一个进程,如C进程。把所有任务的一部分依次完成之后,处理器重新循环,从A进程开始顺次处理,直到最后一个进程。循环反复的过程中,有些任务完成了,有些任务处于尚未完成的状态,如果有新中央处理器:Central Processing Unit,简称CPU。

现在已有多核C P U,一个多核CPU可以看作由多个CPU构成的“CPU组”。

进程:Process。

的任务进来,只需要加入循环队列即可。看上去好像是操作系统同时运行着很多进程,而实际上,它依靠的是类似视觉暂留现象的机制。

在这个机制里,进程不是按其本质属性被划分为子进程,而是被处理器的时间片硬性划分为进程片。这是关键。

我的健身教练就是一个例子。他非常酷,收取的课时费也很高—因为他就是比其他教练教得好。他的工作方式可以很好地说明上述“关键”。例如,我约他15∶00至16∶30之间锻炼,结果有一天我迟到了(16∶00才到),那么他会一言不发地马上开始上课,16∶30(我刚刚上了半小时课)的时候,他会说:“到时间了,下课。”可收取的费用还是1.5小时的费用。这位健身教练是有效率的。因为他的能力强,所以课排得满,所以他必须准时下课才能不耽误下一位客户的时间。之所以说他酷,是因为即便接下来的时间里他没有课,他也不会延长那1小时。事实上,尽管会有一些人觉得他“不通情理”,但这确实是无可挑剔的做法。这样的做法可以非常有效地减少一种令人恼火的情况—因其他人的错误而耽误自己的时间。

把自己的时间切分成“时间片”是一种很难习得的能力,我花了两三年时间才开始感觉自己可以相对自如地运用这种能力。不过这种能力在大多数时候用不上,只有在任务太多、时间太紧的情况下,我才使用这种能力。应用这种能力时,要先坐下来制定一个工作列表,把任务罗列出来,然后把自己的时间“切片”。我通常把“20分钟工作+5分钟休息”作为一个时间片,然后就开始像处理器一样处理任务。这样做可以保持相对长时间的高效率工作。

“番茄工作法”所用的思想亦与此类似。参见第299页。

尽管说起来很简单,但其实需要反复应用才能把这种简单的思考模式变成习惯。一旦养成精细拆分任务的习惯,效率就会在不知不觉间提高了。 R1+ry3UOMBiMiskEXj3uc0CFuOYsRVHNeehs5KNGi0IE4GMeCbGMou7qP6G2j7WK

点击中间区域
呼出菜单
上一章
目录
下一章
×