对于代码的执行结果,我一直很自信,直到遇到多线程。
01 场景
02 解读
假如,
我是说假如。
假如你有一个女朋友,
她突然问你,
大神,什么是多线程呀?
你需要怎样跟她解释,
还得让她能理解透彻。
你想,
你现在就想。
多线程。
你说起来它,头头是道。
你用起来它,乱七八糟。
怎样来生动地描述它呢?
假如你周末在家,
有很多事情要做。
要浇花,
要煮饭,
还要手洗衣服。
如果你用一个单线程。
那么顺序是这样的:
3分钟 拿喷壶接水,适量,关闭阀门。
2分钟 去浇花
3分钟 拿锅接水,适量,关闭阀门。
2分钟 开火煮饭,看着别溢出,米不硬了,关火。
3分钟 拿洗衣盆接水,适量,关闭阀门。
2分钟 洗衣服
这样的话,
你做完全部事情,
需要15分钟。
如果你用多线程的话,
而你家里厨房、阳台、卫生间,
恰好又都有水龙头,
那么有些事情你可以同时做:
3分钟内 厨房、阳台、卫生间同时放水
2分钟内 先坐上锅煮饭,然后去浇花
2分钟内 浇完花,关了火,去洗衣服
这样的话,
全部做完需要7分钟。
想必,
你也看出来了。
多线程危机四伏。
三个地方都哗哗接着水,
你看得过来吗?
煮上饭,你浇花去了,
灶上无人值守这样好吗?
生活中,
多线程的高手比比皆是,
因为事情是死的,
人是活的。
而编程,
要比这个复杂的多。
因为事情是活的,
代码是死的。
我说编程,
事情是活的,
代码TMD却是死的!