python初心者が「マルチスレッド」を理解するには

マルチスレッドってなに?

マルチスレッドはプログラムの並列処理のことみたいです。

通常プログラムは上に書いたものから下に書いたものへ順次プログラムを進めていくものと思います。ですが最近「マルチスレッド」というプログラムの並列処理のやり方を知りましたのでお伝えしたいと思います。スレッドという言葉の意味はよくわかりませんが、スレッドを知らなくても、プログラムが何をやっているかは理解できます。

Pythonでマルチスレッド処理をするコード

import threading, time
print('プログラム開始')

def take_a_nap():
 time.sleep(5)
 print('おきた')
 
thread_obj = threading.Thread(target=take_a_nap)
thread_obj.start()

print('プログラム終了')

まずマルチスレッドのプログラムを書くにいは、Threadオブジェクトというものを生成しなくてはなりません。それが8行目です。Threadオブジェクトには引数としてtarget=を指定します。ここでは4行目のtake_a_nupをターゲットにしています。

ポイントはThread(taget=take_a_nup)でtake_a_nupに()かっこがついていないことです。これは決まりです。9行目thread_obj.start()とすることで新たなスレッドが開始されます。(通常のプログラムとは別のスレッド)

このプログラムを実行すると11行目のprint()が先に表示されて
6行目のprint(‘おきた’)があとに表示されます。これってすごい事だと思うんですよ。

ネットの情報だけじゃわかりにくいそんな人は本を読むべし

このブログで書いているpythonネタはほとんどが「退屈なことをpythonにやらせよう」という本に書かれているものを参考にしています。この本は少々わかりにくく、批判的な気持ちがわいていましたが、初心者にもなんとか理解でき、また内容もかなり充実しています。

悪い言い方をすれば、pythonでとくにやりたいことがない人用の本となってしまいますが、やりたいことがわからなくても、この本はきっと今後の役に立つと思います。ターゲットもノンプログラマーとしていますし、本と一緒に進めていけるのでおすすめです。