前几天工作中遇到一个问题,从正常逻辑顺序来说,根本不会有现在看到现象。
我反反复复去看代码逻辑,依旧没有什么进展,最后因为时间关系选择放一放。
后来其他同事查到这个问题的原因,并告诉我原因,我有些恍然。
原来是并行造成的,你可以理解为本来是两件事,一件做完之后,再做下一件,并行就是,同时在做两件事。
而问题在于第二件事是依赖第一件事的,也就说,第二件事需要用到第一件事做完的结果。
我一直分析不出来是因为,我默认它是一件一件去做的。没有想到这两件事是同时做或者顺序反过来做。
这是一个很好的认知例子,当认知不到事情有同时做或顺序颠倒过来做时,无论如何也想不明白,结果是怎么得来的,但当我们想到有这种可能性的时候,这问题瞬间引刃而解。
说起来在程序世界,程序并行是一件很正常的事情,因为这样能够使效率大大提升,仔细想想也好理解,比如,要做烧水和看书两件事,你是一边看书一边烧水效率高呢,还是先看书后烧水或先烧水后看书效率高呢。答案不言自明。
未来程序越来普及,这种观念也会被更多人所接受。
这件事对我来说,提供了一个可能性,就是当使用顺序逻辑解释不了问题原因的时候,可以尝试使用并行的逻辑去解释。
算是多了一种解释问题原因的框架。
另外我在想,这件事我明明知道并行却没有想到使用这个框架去解释,我想可能是我没有经常使用有关和没有将并行纳入到解释框架中来。
我有些理解,“你永远无法赚到认知以外的人钱。”这句话。
一句话总结:认知水平需要不断积累。
网友评论