一件活儿里的好几条线
把一件活儿分成好几条线,在同一个工作间里同时进行。
一个人,好几只手
一个厨师在厨房里忙活。一边炖着汤,一边切菜,时不时还看看火。
活儿是一件,做饭,可这件事里头有好几条线一起在走。厨房就一个,料架也就一个,大家一起用。
电脑也能把一件活儿这样分成好几条线一起做。这每一条线,就叫一个线程。
这样分成好几条线,汤在煮开的工夫里手也不闲着,能去照看另一条线。
活儿是一件,里头的线有好几条。厨房和材料一起用
线程就是一件活儿里头,同时往前走的好几条线。
互不相干的两户,一户里的好几间
前面说过,每个进程都各自有自己单独的空间。两个进程就像挨着的两户人家。中间有墙,谁也不能随便进谁家。
可一个进程里头的线程,就像住在一户人家的家人。房间分开,可客厅和冰箱是一起用的。
所以线程之间传递消息很方便。它们看的是同一个架子。进程之间就麻烦多了。
墙看着碍事,可邻居家漏了水,也全靠它挡着,自家才不会跟着湿。
进程是隔着墙的邻居,线程是一户里的家人
进程各用各的空间,一个进程里头的线程共用空间。
多加几条线
一件活儿分成几条线,自己来改改看。
只有一条线,活儿就一步一步顺着做。多加几条线,好几个部分就同时往前走。大家都看着同一个架子。
线多了,活儿可能完得更快。不过大家用的是同一个厨房,太多了就会互相挡道。自己加一加,看看活儿怎么分。
不过把线加到两倍,活儿也未必就快两倍,因为厨房就那么大,互相让道的工夫会越来越多。
改改线的条数,看看一件活儿怎么分开往前走
线一多就同时进展得多,可共用同一个空间这点没变。
一起用是快,可是
线程一起用这个架子,是个大优点。不用单独搬来搬去、抄来抄去,马上看的就是同一样东西,又轻又快。
可这有两面。两条线要是同一个瞬间去碰同一样材料,就可能撞上。一边在放盐,另一边也放了进去,就这么回事。
所以一起用是方便,但什么时候、谁来碰,得稍微当点心。这事下回再细说。
可到头来还是选一起用,因为要给每条线都单独抄一份料架,那才更沉更慢。
共用又轻又快,可同时碰同一样东西就会撞上
共用空间又快又轻,可同时碰同一样东西,就可能出问题。
一页纸总结
记住三点就够了。
第一,线程是一件活儿里头的好几条线。活儿是一件,可里头好几个部分同时在走。
第二,它们共用同一个空间。进程之间有墙,可一个进程里头的线程看的是同一个架子。第三,所以又轻又快,但也得当心。同时碰同一样东西就可能撞上。
懂了这三点,就明白一个应用为什么能用一条线撑着画面,同时用另一条线在后头悄悄干活,还一直不卡。
一件活儿里好几条线,共用空间,轻但要当心