マルチスレッドでgoogleの検索結果開くプログラムを作ってみた。

マルチスレッドのスクリプトを書くと疑問がわきます。マルチスレッドは別に並行してプログラムを処理するわけでなく、スレッドを短い時間に生成しているだけのような気がします。イメージでいくとマラソンのトラックみたいな感じでしょうか?

内側の人がはやくて外側の人はちょっと遅くなるみたいな・・・。ちょっと何を言っているわからないですね。というかpythonの手持ちの書籍をみても並列処理をしているとはどこにも書いていないんですよね・・・

Pythonのマルチスレッドでgoogleの検索結果を表示するコード

マルチスレッド Python

マルチスレッドスクリプトを書く時は、考え方を少し考えないといけないので、頭が痛いです。そこで区画分けをすると少しわかりやすいかなと思いまして、「スレッドを生成する区画」と「実際に仕事をする区画」にわけました。

これはほんの一例にすぎないかもしれないですが、区画分けをするとマルチスレッドはわかりやすいかもしれないです。スレッドの後追い的な書き方しかできていないですが、もっと凄い人が世の中にいるんだろうなと思ってしまいます。

Pythonのマルチスレッドプログラムでハマったところ

スクリプトの22行目でargs=(i, i*10)と書いています。ここがマルチスレッドスクリプトの決まりなのかどうかはわかりませんが、実際に仕事をする区画に書いているメソッドに渡す引数はイテレーターでないといけないみたいです。そのため少しややこしい書き方をしています。(i*10のところ)

そもそもイテレーターってなんですか?という話で、あまり調べずに書きました。自分で書いたスクリプトですが、あまり深くまで理解できていません。

マルチスレッドは実際にはやいの?

今回はかなり小規模のスクリプトですのであまり違いはわからないといえばわからないですが、少しはやいかも・・・?というレベルでした。たしかに仕事をする人を3人作ってその人たちにそれぞれ働いてもらっていると考えれば、はやくならないとおかしいですよね。プログラムは凄いなと思いました。