人类大脑是单线程的吗?

dimlau

作为人类,我不太愿意接受「大脑是单线程的」。但是很多时候我盘算着要做甲乙丙丁好多件事,但是最终发现只能一件一件去做,怎么解释?

这十来天我一直在做一款游戏。做游戏,怎么理解都可以,构思、编写、制作一款游戏,同时这个过程对我来说也是在做游戏,玩游戏。因为水平太差,一开始到算平稳推进,但是到了这个游戏有了世界、人物、地图之类的功能划分,就时常在关闭程序时卡住,我把错误日志复制出来去查原因,发现是一种叫做死锁的问题。意思大致上就是,为了防止一个人物增加游戏世界里的某个物品数量时,另一个人物减少同一物品,没法清算到底结果是多少,所以给这个物品加了个锁,要增减都得先开拿到锁,把自己锁在里面才能操作,免得这个时候别人篡改数据。但是问题就是复杂逻辑里,有许多数据变动是嵌套的,最终导致:一个人把甲锁住,打算修改完乙才解锁;于此同时另一个人则是锁住了乙,打算修改完甲才解锁乙。两人僵持不下,谁也动不了。

上述例子里的人,就是所谓线程,设计合理的线程应该并行不悖。锁尽量开小一些,操作什么数据就只锁住那一个数据……总之,如果不愿意接受大脑是单线程的,大概就只能接受,大脑进化得不够好,锁太大,在思考游戏如何设计时,就完全无法同时完成博客构思。两件事的思绪其实同时都在飞,但是妳选择游戏这个线程,就同时锁住了思绪「产生、梳理、记录」三个区域,其他思绪可能还会随时迸发出来,但是迸发然后消散,总是无法完成最终想要的那个成品。这很让人恼火,但是,事情还是只能一件一件去做。

本站架设在 RamNode VPS

Grav -> Hugo