提高效率的诀窍:分辨任务属性——并行与串行(四)

byXIAOLAIon2009/02/14·10 COMMENTS

in把时间当作朋友

习惯于提前认真拆分任务是让自己变成“多任务操作系统”的一个方法,而另外一个方法就是切分自己的时间。本质上来看,我们的大脑与计算机的CPU一样,是个一次只能处理一项任务的系统。但,计算机究竟是如何做到同时“多任务处理”的呢?(没有“多任务处理机制”,就无法实现现在人人都习以为常的“视窗操作系统”。)

我在《一句话训练自己“融会贯通、举一反三”的能力》中大致提到过这个机制。在本系列第一篇文章发表后,读者apu的留言里也提到了这个机制(为了说明清楚,我增补删改了apu的留言):

拿CPU为例(多核的CPU除外),CPU在一个时间段内其实只能做一件事,因为它只有一个个体,一个时空。……多任务操作系统把一个长的时间段划分成很多短小的时间片,每个时间片只让CPU执行一个进程(process)——尽管有多个进程需要CPU处理。在第一个时间片(或称时间段)里,CPU去处理A进程;当时间到了之后,无论A进程处理到什么程度都要被“挂起”(即,A进程这时不能再占用CPU——尽管它还是被允许运用计算机的其他资源,比如磁盘、比如屏幕输出,等等)。在第二个时间片里,CPU处理的是B进程,时间到了之后,B将与A一样被中途“挂起”;而后CPU再处理下一个进程,比如C。依次把所有任务的一部分完成之后,CPU再次重新循环处理,从A开始,直到最后一个进程。循环反复的过程中,有些任务就陆续完成了,另外一些任务将处于尚未完成状态。这样的时候,如果有新的任务进来,只需要加入循环队列即可。……这样连续起来就好像是它同时运行着很多进程,实际上它就像是视觉暂留一样。

在这个机制里,进程不是被按照其本质属性而划分为“子进程”(在这篇文章里,所谓“进程”和我们前文所说的“任务”是一回事儿),而是被CPU的时间片而硬性划分为“进程片”。这是关键。

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

把自己的时间切分成“时间片”,是个很难习得的习惯——我自己大约花了两三年时间才开始感觉可以相对自如地运用,又过了几年时间才觉得很自然。不过,大多的时候用不上。只有在任务太多,时间太紧的情况下,我才使用这种方法。要先坐下来制定一个工作列表,把任务都罗列下来,而后把自己的时间切片。我通常使用“20分钟工作+5分钟休息”作为一个时间片,然后就开始像CPU一样处理任务。这么做可以保持相对长时间的“高效率工作”。但,我自己的经验是,一般来说连续两个星期之后我就会筋疲力尽。

results matching ""

    No results matching ""