“多线程”之思

作者: Captain春风十里 | 来源:发表于2018-10-24 22:49 被阅读12次

      《最重要的事只有一件》一书中谈到一个重要的观点,即:一心不可二用,同时面对两件事的最有效做法是分开处理。

        作为一个程序猿的非IT从业人员,看到这里,首先想到的一个词就是“多线程”。

    什么是“多线程”

        顾名思义,“多线程”就是多个“线程”。“线程”这个深入讲过于专业,简单讲,“线程”是程序执行的最小单位,不同于“进程”——资源竞争的最小单位。

        用一个形象的解释来讲(引之知乎):

单进程单线程:一个人在一个桌子上吃菜。
单进程多线程:多个人在同一个桌子上一起吃菜。
多进程多线程:多个人每个人在自己的桌子上吃菜。

        (没有多进程单线程:因为一个进程至少包含一个线程)

        “多线程”的问题是多个人同时吃一道菜的时候容易发生争抢,例如两个人同时夹一个菜,一个人刚伸出筷子,结果伸到一半时菜已经被夹走了……此时,就必须等一个人夹一口之后,再让另外一个人夹菜,也就是说资源共享就会发生冲突争抢。

    电脑可以“多线程”,人脑呢?

        “多线程”的问题对电脑来讲早就不算什么事,但对人脑来讲,无外乎两种观点:

      一是只能“单线程”

        比较典型的就是《最重要的事只有一件》一书中所讲,“同时兼顾几件事只是一个美好的慌言”,“同时做两件事等于一件都没做”。微软的技术大牛刘未鹏在他的《暗时间》一书中,更是对人脑的“多线程”这一问题作了深入的研究探讨,提出了“暗时间”这一概念,认为“在一件事上投入的有效时间是时间和效率的乘积”。刘未鹏指出,大脑在一件事和另一件事之间切换是需要时间的。很多人认为“多任务”是件很好的事情(有时候的确是),但日积月累起来就会发现,消耗在切换上的时间越来越多。比如:你正在看书的时候,忍不住打开浏览器,10分钟后你想起来还要继续看书,但要恢复到看书的“状态”,需要一段时间去集中精力,重新进入情况。如果这个“热身”状态需要15分钟,那么看似10分钟的上网其实花费了25分钟。所以,能够迅速进入状态(心流状态),以及能够长期保持专注,是高效工作的两个最重要的习惯。著名效率管理专家史蒂芬柯维在《高效能人士的七个习惯》一书中也指出,一个人做事缺乏效率的一个根本原因,就在于没有固定的目标,精力过于分散,以至于一事无成。讲的也是,人必须专注于一件事上。

      二是可以“多线程”

        知乎名人采铜在《精进》一书中提出了一种解决问题的框架——“目标悬置”的方法。很多人同时有多个不同的目标想实现,但又不知道怎么处理多个目标之间的关系时,通常有两种做法:第一种是串行模式(单线程)——必须先实现目标A再实现目标B;第二种是并行模式(多线程)——同时追求目标A和目标B。无论使用哪种模式,都可能让人觉得压力很大。采用“目标悬置”方法,先把目标A停下来(悬置),执行目标B,然后时机成熟再回过头来执行目标A,如此反复在A和B之间交替。斯坦福大学大学在2015年曾采用这种方法来改革学制教育。资深媒体人罗胖在他的跨年演讲《时间的朋友2017》也讲到了一个例子,他的一个朋友的孩子,可以一边做作业,一边看电影,一边还和同学上网聊天。他朋友讲,自己的孩子是学霸,特别说明,他们这代孩子,大脑的带宽和我们不一样,可以多线程运行。

        到底人脑能不能“多线程”运行呢,我的理解是

    因人而异、因事而异、因时而异

      因人而异,有人确实可以。比如罗胖在跨年演讲中提到的朋友的孩子;还比如一些左右手同时写字画画的书画家,手脚并用的杂技演员等。可能一些人天生就具备“多线程”的能力,一些人经过后天训练,可以在某一两件具体的事中实现“多线程”。

        因时而异,看时间跨度。采铜所讲的“目标悬置”方法,“悬置”的周期相对较多,可能是一两天,也可能是一两年。在这样的一个跨度上,宏观上看,是“多线程”,微观上看,还是“单线程”。比如斯坦福大学的学制改革,就是将连续四年制学习改为可终身多次进出学校的六年制学习

        因事而异,有的事可以“多线程”。最简单的例子,最近几年流行起来的知识付费,特别是“听书”服务,像“得到”“湛庐阅读”“喜马拉雅”等APP,大部分人很难拿出专门的时间来听,越来越多的人采用边跑步边听、边健身边听的方法来提高时间利用效率。比如,这几课的学习我都是清晨长跑时听的。

相关文章

  • “多线程”之思

    《最重要的事只有一件》一书中谈到一个重要的观点,即:一心不可二用,同时面对两件事的最有效做法是分开处理。 ...

  • 多线程的基本概念

    什么是多线程呢?多线程有什么用呢?我们先看看与之相关的各种简单概念。 第一个我们先说说什么是进程,进程顾名思义...

  • iOS多线程实现方案之 -- GCD

    昨天通过多线程实现方案之 -- NSThread说了关于 NSThread 多线程的一些知识点和用法, 其实之...

  • Reentranlock

    Java多线程(九)之ReentrantLock与Condition

  • 多线程

    什么是多线程 多线程:顾名思义就是多条线程同时存在,在实际开发中是非常重要的。要了解多线程,我们首先要了解的是进程...

  • Unity C#基础之 多线程的前世今生(下) 扩展篇

    在前面两篇Unity C#基础之 多线程的前世今生(上) 科普篇和Unity C#基础之 多线程的前世今生(中) ...

  • 厨间风月谈:秋思鱼丸

    ——古人见秋风起有鲈鱼之思,我有鱼丸之思…… 古人见秋风起有鲈鱼之思,我有鱼丸之思。 我思鱼丸只冒口水,老...

  • 《长思》

    《长思》 人须长之思,否,必亡。 长回之思,醒前时之错,警未来之做。 长深之思,明双眼之明,头脑之清。 所过之错,...

  • 心如何修之

    心之何如之修?自渡,自醒,自思。他人爱莫能助。 饿之,思吃。乏之,休之。修行不外之:不思,不休,不行!

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

网友评论

    本文标题:“多线程”之思

    本文链接:https://www.haomeiwen.com/subject/zuyftqtx.html