質問: 0 def increment(): c += 1 def decrement(): c -= 1 このコードスレッドは安全ですか?そうでない場合は、なぜそれがスレッドセーフではないのか、そしてどのようなステートメントが通常スレッドセーフでない操作につながるのかを理解できますか?.スレッドセーフの場合、どうすれば明示的に非スレッドセーフにすることができますか?
回答: 関数のインクリメントとデクリメントがエラーなしで実行されますか?python 'c'という名前のグローバル変数を使用することを明示的に指示する必要があるため、unboundlocalerrorが発生するはずです。したがって、インクリメント(デクリメントも)を次のように変更します。def increment(): global c c += 1 あなたのコードはスレッドセーフではないと思います。 この記事 pythonのスレッド同期メカニズムについて役立つかもしれません。