我们的大脑是单线程结构还是多线程结构?

摘要:
第二天又练习了一天dota,然后顺利拿到WCG总冠军。其实,选择单线程还是多线程取决于你对该任务的掌握程度,如果你对于该任务来说是个新手,就应该采用单线程的方式;如果你是个专家,能够达到用右脑编程的水平,对于多线程的任务切换所消耗的时间就可以忽略不记了。不过对于我来说,编程还是单线程效率最高。

http://www.cnblogs.com/easymind223/archive/2012/07/02/2573757.html

我一直很佩服那些专业电子竞技运动员,也一直很喜欢China_TTTT,他们是如何能够兼顾正面战场的决战,同时到对方家里三线偷袭?这种多线程操作对于初学者来说简直就是噩梦,但是对于专业人员来说,它却和单线程操作是差不多的。

假设你现在有两个任务要完成,一是完成一个客户交给你的程序任务,二是为参加WCG而苦练dota, 先来看看你喜欢下面的哪一种工作方式:

1.今天我要把这个程序编出来,然后你从早到晚一直忙于编程,因为把精力集中于一件事情上是效率最高的方法,然后在第一天晚上你终于把客户的任务完成了。第二天又练习了一天dota, 然后顺利拿到WCG总冠军。

2. 编一天的程序太累了,我每完成程序的一个模块就练两局dota, 这样可以使得大脑的各个区域充分被利用,不至于让一个区域过度劳累,而且这样做也能防止我走入单任务的思维惯性陷阱。然后在第二天晚上,你完成了客户的任务,之后也顺利拿到WCG总冠军。

曾经有过很多关于心理学和人脑结构的文章探讨过哪种工作方式才能让工作效率最大化,每种方式都有自己的优点和适用场合。

单线程观点认为:1. 一个人的工作如果被打断的话(如电话等),他想要回到被打断前的工作状态平均需要20分钟,这是有大量数据证明的。不停的切换任务是效率最低的方式。2.对于任意一项技能,你对它的了解程度与你学习它的时间是成幂函数关系(指数大于1,凹函数),所以你应该专心于一件事情。

多线程观点认为:大脑的不同区域负责不同的工作,同时处理两种不同性质的工作,如画画和逻辑推理,就像是双核cpu一样,这样做比一个cpu单独工作效率要高。而且,如果你长时间专注于一项工作,你会对它越来越麻木,就像程序员能够轻易发现别人程序中的bug,却找不到自己程序中的bug一样,你需要适时的跳出当前的任务,换一种思维方式。

其实,选择单线程还是多线程取决于你对该任务的掌握程度,如果你对于该任务来说是个新手,就应该采用单线程的方式;如果你是个专家,能够达到用右脑编程的水平,对于多线程的任务切换所消耗的时间就可以忽略不记了。不过对于我来说,编程还是单线程效率最高。具体可以参见我之前的文章http://blog.sina.com.cn/s/blog_8e356e160100xsxs.html

PS: 为什么人人都要学一点音乐?

人脑的磁共振影像表明,人脑在演奏乐器时,大脑的所有部分几乎都处于活跃状态。也就是说,无论你的工作是什么,演奏乐器都可以帮助你放松大脑,而且是全方位的,这也是我在实验室放个吉他的原因。

免责声明:文章转载自《我们的大脑是单线程结构还是多线程结构?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vs2019报错说 E0167 "const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容FreeRTOS 消息队列下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

1-多线程与多进程

  一 进程与线程的概念 1.1 进程 考虑一个场景:浏览器,网易云音乐以及notepad++ 三个软件只能顺序执行是怎样一种场景呢?假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。你是不是已经想到在程序A读取数据的过程中,让程序B去...

openssl多线程实例

本示例用多线程实现了一个ssl服务端和一个客户端。 服务端代码如下: #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <errno.h> #ifndef _WIN32 #include <sys/types.h>...

【转】Python中的GIL、多进程和多线程

转自:http://lesliezhu.github.io/public/2015-04-20-python-multi-process-thread.html 目录 1. GIL(Global Interpretor Lock,全局解释器锁) 2. threading 2.1. 创建线程 2.2. 使用线程队列 3. dummy_threadi...

为什么要关闭数据库连接,可以不关闭吗?

首先要说明的是连接数是有限制的: 代码如下: for (int i = 0; i < 10000; i++) { SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS; AttachDbFilename=""E:\DB\NORTHW...

selenium+python-unittest多线程生成报告(转)

前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了。 环境必备: python3.6 : BeautifulReport不支持2.7 tomorrow : pip install tomorrow安装 Beautifu...

最全的iOS面试题及答案-转载

1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原...