0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python threadingの使い方

Last updated at Posted at 2024-01-18

Python threadingの使い方の備忘録です。

ビギナー向けの説明としてよく見かけるコード:

t1 = threading.Thread(target=<関数名>)
t1.start()

このthreading.Threadはクラスにも適用できます。
以下はMyTestThreadクラスのthread1とthread2がメッセージを交互に出力するサンプルです。

import threading
import time

class MyTestThread(threading.Thread):
    def __init__(self, threadMessage) :
        super().__init__()  # おまじない
        self.myMessage = threadMessage

    def run(self):
        while True:
            print(self.myMessage)
            time.sleep(1)
        
if __name__ == "__main__":
    testThread1 = MyTestThread('thread1')
    testThread2 = MyTestThread('thread2')

    testThread1.start()
    testThread2.start()

super().__init__()を呼び出さないと、start()時に例外が起きます。

組み込み業界で生きてきたこともあり、スレッドの優先度指定方法が気になり調べてみたところ、Pythonの世界では組み込み用タスクのようなスレッド優先度は無いという衝撃的な結果となりました。

まあ、RTOSで使う言語でもないし、優先度なんて気にしないのかな。


当初、super()をsuper(MyTestThread, self).__init__()と記述したところ、引数は不要と教えて頂きました。
親切にコメントくださった方、ありがとうございました。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?