一つの作業の中の何本もの流れ
一つの仕事を何本もの流れに分け、同じ作業場で同時に進めます。
一人で何本もの手で
一人の料理人が厨房で働いています。スープを煮ながら、同時に野菜を切り、ときどき火も見ます。
仕事は一つ、料理ですが、その中で何本もの流れを一緒に進めています。厨房も一つ、材料棚も一つ、一緒に使います。
コンピュータも一つの作業の中で、このように何本もの流れに分けて働けます。その流れ一本一本をスレッドと呼びます。
仕事は一つ、その中の流れは何本も。厨房と材料は一緒に使う
スレッドは、一つの作業の中で同時に進む何本もの流れです。
他人どうしの二軒、一軒の中の何部屋
前に、プロセスはそれぞれ自分の空間を別に持つと言いました。二つのプロセスは隣どうしの家のようです。壁があるので、勝手に入れません。
でも一つのプロセスの中のスレッドは、一軒に住む家族のようです。部屋は分かれていても、居間と冷蔵庫は一緒に使います。
だからスレッドどうしは情報をやり取りしやすいのです。同じ棚を見ているからです。プロセスどうしでは、それはもっと手間がかかります。
プロセスは壁のある隣家、スレッドは一軒の家族
プロセスは空間を別々に使い、一つのプロセスの中のスレッドは空間を一緒に使います。
流れを増やしてみます
一つの作業を何本の流れに分けるか、自分で変えてみてください。
流れが一本なら、仕事を順に一つずつ進めます。流れを増やすと、いくつもの部分が同時に進みます。みんな同じ棚を見ながらです。
流れが多くなると、仕事がもっと早く終わることがあります。ただ、みんな同じ厨房を使うので、多すぎると互いに道をふさぐこともあります。増やしてみて、どう分かれるか見てください。
流れの数を変えながら、一つの作業がどう分かれて進むか見てください
流れを増やすと同時に多く進みますが、同じ空間を分け合うのは変わりません。
一緒に使うと速いけれど
スレッドが棚を一緒に使うのは大きな利点です。別々に運んだり写したりせず、すぐ同じものを見るので、軽くて速いのです。
でも両面があります。二本の流れが同じ瞬間に同じ材料を触ろうとすると、ぶつかることがあります。片方が塩を入れる間に、もう片方も入れてしまう、という具合に。
だから一緒に使うのは便利ですが、いつ誰が触るか、少しの注意が要ります。この話は次にもっとします。
共有は軽くて速いが、同時に同じものを触るとぶつかる
空間を一緒に使うと速くて軽いですが、同じものを同時に触ると問題が起きることがあります。
一枚にまとめます
三つだけ覚えれば大丈夫です。
一つ目、スレッドは一つの作業の中の何本もの流れです。仕事は一つですが、その中で何本もの部分が同時に進みます。
二つ目、同じ空間を分け合います。プロセスどうしには壁がありますが、一つのプロセスの中のスレッドは同じ棚を見ます。三つ目、だから軽くて速いですが、注意も要ります。同じものを同時に触るとぶつかることがあるからです。
一つの作業の中の何本もの流れ、空間の共有、軽いが注意