タグ

ThreadとIncrementに関するfxkireekのブックマーク (1)

  • 絶対ダメ! マルチスレッドでの共通変数のインクリメント演算

    デバッグ中の発見 とあるマルチスレッドプログラムをPythonで書いていた際に遭遇した誤使用です。C/C++等の言語を使った場合には起こらない仕様なので、知っておくと役立つ時がくるはずです。これはPythonだけでなく、Rubyでも同様のことが起こるので、Rubyistさんも是非気をつけていただければと思います。 @ahaha_traderさんのご指摘により、C/C++でも同様のことが発生することを教えていただきました・・・。不勉強をお詫び申し上げます。 このブログを見ているような方々だとバグが生じる実際のコードと、結果をまずお見せしたほうが良いと思うので、サンプル用に作ったコードがこちらです。 バグが生じるソースコード import Queue import threading class MultiThreadIncrement(object): def __init__(self,

    絶対ダメ! マルチスレッドでの共通変数のインクリメント演算
  • 1