Claude Codeまわりの解説を読んでいると、「ワーカー(worker)」という言葉がぽろっと出てきます。日本語にすると「働き手」。名前のとおり、実際の作業を引き受けて処理する側を指す呼び方です。
まずは引っ越しで例えてみる
引っ越し業者を想像してください。現場には「今日はこの部屋から荷造りして、次にトラックへ積んで……」と全体を見て指示を出すリーダーがいます。そして、実際に段ボールを詰めたり運んだりする作業員が何人かいる。この作業員が「ワーカー」にあたります。
ポイントは、作業員は渡された仕事だけを黙々とこなすということ。「この部屋の本を箱に詰めて」と言われたら、その部屋の本を詰めます。他の部屋で何が起きているか、全体の段取りがどうなっているかは、基本的に知らなくても仕事は進みます。
指示する側
全体の段取りを決め、仕事を分けて配る。結果を受け取ってまとめる。
ワーカー(働き手)
渡された仕事を実行して、結果を返す。担当範囲の中で完結する。
ソフトウェアの世界での「ワーカー」
この言葉はプログラミング全般で昔から使われています。共通しているのは「仕事(タスク)を受け取って処理する実行主体」という意味です。何がワーカーになるかは文脈によって変わります。
- バックグラウンドで動くプロセスやスレッド
- キューに溜まった処理を順番に取り出して片付ける仕組み
- 親から仕事を割り振られる子プロセス
呼び名は同じでも、指しているものはその都度違う、というのが少しややこしいところです。だから記事や設定ファイルで「ワーカー」を見かけたら、まず「この文脈では何がワーカーなんだろう?」と一度立ち止まるのが安全です。
なぜ分担するのか
ひとりで全部やってもいいはずなのに、わざわざ働き手を分けるのには理由があります。
ひとつは並行して進められること。引っ越しの例で言えば、リビングとキッチンを別々の人が同時に荷造りすれば、単純に早く終わります。ソフトウェアでも、独立した作業を複数のワーカーに任せれば全体の待ち時間が縮みます。
もうひとつは関心の分離です。指示役が「全体をどう進めるか」に集中でき、ワーカーは「目の前の仕事をどう片付けるか」だけを考えればいい。役割がはっきりすると、うまくいかなかったときにどこが原因か切り分けやすくなります。
ありがちなつまずき
初めてこの手の仕組みに触れると、「ワーカーが勝手にいい感じにやってくれる」と期待しすぎて肩透かしを食らうことがあります。実際は逆で、渡した仕事の内容が曖昧だと、返ってくる結果も曖昧になります。引っ越しの作業員に「なんかいい感じに片付けといて」と言ったら、たぶん想像と違うものが出てきますよね。それと同じです。
もうひとつ、数を増やせば増やすほど速くなるわけでもありません。仕事を分けたり、結果を集めてまとめたりする手間そのものにもコストがかかります。分けるほど得になる作業なのかどうかは、その都度の判断になります。
覚えておきたいこと
難しい概念ではありません。「仕事を配る側」と「仕事をこなす側」に分かれていて、後者がワーカー。この一点さえ押さえておけば、文中で出てきたときに読み飛ばさずに済みます。あとは具体的にどの仕組みの話をしているのかを、その記事や資料の文脈から拾っていけば十分です。
このページは役に立ちましたか?