質問: 1: break; print("マルチスレッドループ終了"); ``` 上記のぷろぐらむではjoin()メソッドでNoneではなくてintの1を返したいと 仮定してjoinメソッドもオーバーライドしています。 windows端末では上記のソースは問題なくうごいたのですが 何か問題のある記述をしていたら指摘していただきたいです
回答: 「サブのスレッドが動いている限りメインスレッドでは別処理をさせたい」というのはごく自然な要求です。そのためにマルチスレッドさせます。提示コードも問題ないと思います。 ただ、提示された条件であれば以下のループでよいです。(サブ)スレッド死ねば`join()`は不要なので。 ``` while(th.is_alive()) : # メインの処理を行う print("マルチスレッドループ終了"); ``` また「join()でメインスレッドをブロック」するコードは、先にメイン側が終了するようなケース、具体的には以下のようなコードではないかと思います。 この場合は、サブ側の終了を待ってメインを終了させます。 ``` while( True): # メインの処理 # ... if メインの終了条件: break th.join() # サブの終了を待ってメインを終了させる。すでにサブが死んでてもjoin()呼び出してもよい。 ```