习惯于提前认真拆分任务是让自己变成“多任务操作系统”的一个方法,而另外一个方法就是切分自己的时间。本质上来看,我们的大脑与计算机的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一样处理任务。这么做可以保持相对长时间的“高效率工作”。但,我自己的经验是,一般来说连续两个星期之后我就会筋疲力尽。



{ 10 comments… read them below or add one }
尝试一下这样做,预计很艰难可以严格做好
input:focus,select:focus,textarea:focus{outline: #E2B635 3px solid;}
下午三点至四点半。。。。。。收取的费用依然是原来两个半小时的费用。
你的教练太狠了。还加罚1个小时费用。
呵呵,笔误——改过,谢谢!
关于提高效率,讲一讲自己身边的事。本周某天,部门又一次召开了月度例会,距离最近一次的月度例会已经有四个月了。会前无人知道会议的具体安排,比如会议流程、需要汇报的内容以及可支配的时间等等,因此会议的混乱就是必然的结果。在会议中,发言的人汇报着自己认为重要的事情,因为实现没有充分的准备加之个人表达能力以及材料组织能力的差异,说得可谓杂乱无章,其间领导时而有一句没一句的问着某些似乎不相干的问题。正是这样的安排,使得第一位同事整整耗去了50分钟的时间,要知道,需要在本次会议上汇报工作的有8个人啊。我知道,和以前的会议一样,这次的会议又完蛋了,不会有任何效果。如果会议能做出明确汇报要求的话,这位同事仅仅需要十分钟就足够了。仅从开会就可以看出,在专业化的道路上,我们这个部门还有很长的一段路要走。对此我并不乐观,因为多年以来就是这种状况。
关于会议,可以到google上搜索“罗伯特议事规则”。
谢谢笑来老师的指点。我曾读过《罗伯特规则》以及德鲁克的《卓有成效的管理者》等有关时间管理的经典书籍,并且按照其中的原则和方法安排工作和生活,确实提高了效率,真正建立了时间的概念。但是所在的部门只有我自己在使用outlook来管理工作和生活,诸多同事除了会用些word和excel的基本功能外,几乎不再使用任何工具来提高工作绩效,很多事情若干年前是怎样做的,如今还是这般做,从无意识去考虑改进流程和提高效率。举个例子,同样一套很复杂的表格,因为我平时不断学习excel技巧,因此我半个小时就能完成,而同事会花1-2个小时,而且还不能保证是队的,因此可能她们就需要加班,在外人看来她们很敬业,实际上呢,不言自明。
在单核单 CPU 系统上实现多任务的机制移植到个人时间安排上有这么一个问题,就是进程或者说任务现场的恢复。对 CPU 来说这个很简单,恢复下已经保存的寄存器值就可以了,但是对人来说,要恢复一个在二十分钟、甚至更长时间前在任意地方中断的任务本身恐怕就要花不少时间,例如说 5 分钟左右。这样下来,尤其是对于许多需要较长的连续时间处理的任务,例如 debug, 例如写代码,过短的时间片切分恐怕会浪费时间同时降低效率,而不是提高效率。
好方法
我想请教一个问题:如何提高自己的注意力。感觉有时候注意力总是会分散。或者完成一点点任务就以为完成很多了,想休息。
笑来老师,我觉得时间片对CPU可以,但对人,可能不是很合适。
CPU在运行时,线程间切换是要有上下文转换的开销的。这对于CPU来说,不过是很小的比例,但是对人来说,却不是很合适。呵呵