1

讲多线程工作的害处的文章已经很多了,我也深有体会。至少我本人就是多线程工作切换的典型受害者。

但这事可能很难避免,我也有各种方法来杜绝这个问题,有的时候坚持的唱,有的时候坚持的少。有的时候是被迫进入多线程,有的时候是我自以为是,自大的以为『这一次我可以 hold 住这种简单的几个线程切换』,当然最后的结果还是一如既往。

这可能会是我一辈子永远需要克服的难题。

我觉得多线程的问题本质上是我的贪婪,但这事说起来又太大了。而且那么多讲生产力的文章,不缺我再重复说一下。

只不过我个人确实在工作上有那么一些技巧,估计别人也常用,但确实很有用。

比如说,你今天事情很多,那越是多,越是要停下来。先进 todolist, 把你要做的东西写下来。至于用什么东西来做 todoist 无所谓了,我自己是用一个 web 版的工具,有时候加上纸笔。不过这样的方法也有问题——同时使用两个 todo 工具,本身就是一种可怕的线程切换。我尝试过在两个工具里分别记录不同的东西,比如一个记录提纲,一个记录每件时间的细节和分支子任务,但事实证明根本没用。

todolist,就要把你所有的todo 给压扁,拍平。我甚至不使用 todolist 软件的分类和tag功能,就从上到下一路排开,不包含任何父子结构。只不过这事也不绝对,父子结构和分支多任务不一样,还是可以从上到下按顺序执行的。

大致上这就有点像编程,放弃那些复杂的技巧,就用从上到下的面向过程,一路执行下来,最多做一些简单的封装(父子结构),可以存在写的很难看的 if 结构,但必须严格从上到下。

我还喜欢把我的todo事项写的很详细。工作中其实会有很多需要动脑子拆分思考的问题,但我更喜欢在我正式开工前先把这些东西做完。毕竟世上万物无非就是for 循环和 if else,即便你不知道你接下来的工作执行阶段会有哪些问题,但基本有了足够的对异常判断的处理,也不会有大问题了。

这样最大的好处,就是到了执行的时候,你基本不用动脑子了。需要费脑子的部分,已经都写在纸上了。这样的工作方式还挺轻松愉快。

而且某种程度上,我这样做其实也能兼容多线程的工作了,只是我把以前那种靠脑子的多线程切换提前做完切换部分,并且固化了下来,不再给自己增加心智负担。我的todolist里完全可以有各种各样的工作切换,一会儿 A 一会儿 B,其实完全没有问题。反正我的心智在工作的时候不负担这部分,没什么烦恼,无非就是软件和工程切换的时候有些慢而已,但总的来说工作的愉悦程度就大大增加了。

还有一些习惯,比如我会把所有想看的网页窗口一路都打开,然后一个个慢慢看完关。比如哪怕我用着16G的内存,也能做不少事,我仍然会尽量把打开的软件和应用尽量关闭到最少,当前做什么事就只开那一个。

缺点当然也有,很多软件启动其实有点慢,但我的这种模式下,会频繁的打开关闭,讲实话还挺麻烦。但这个不是大问题,靠更好的 CPU,更快的 SSD ,就能极大的缓解这个问题。但我并不喜欢留着窗口,当做自己看不到。这样不行,就像在 macOS 里我也尽量用 Command + Q 而不是 Command + W 一样。你留着一个空的在那,说是为了下次更快,但其实你的心智里就给那个东西预留了一个地方,它占用了你的机器内存无所谓,重要的是它占据了你的心智内存。

再说了,你差的其实从来不是那点软件的启动时间……

还有个很多人用的技巧就是听音乐。不过我不能听我喜欢的 postrock,classical,只能听几乎没有存在感的音乐。这点上我倒是蛮信服一个理论的,大概是说『用一个无关痛痒的事物占据注意力的边缘,会让你更容易专注。』不过这个每个人可能不一样,有的人可能用手指玩具或者什么东西来占据,我个人更喜欢的方式还是用音乐。

不管用什么方法吧,还是要避免在做事的时候多线程切换。就真的,专注的时候,做事效率高就算了,主要自己不累。我甚至觉得单线程特别养生,是一个可以进入医学讨论的话题……