タグ

Eventとpythonに関するclavierのブックマーク (3)

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

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

    絶対ダメ! マルチスレッドでの共通変数のインクリメント演算
  • PythonのThreadを待機させるか、必要の度に作成するのかのベンチマーク比較

    QueueとThreadのベンチマーク比較 2つのケースについて比較検証してみました。 実際に処理する内容は以下のとおり。 0~999までの単純足し算を100回する処理を4スレッドで合計10,000回繰り返す 比較するケース 4スレッドを毎回作成する 予め4スレッドを作成し、Queueで処理を指示する まぁ、もちろん後者のほうが速いだろうという推測はしているのですが、どれだけ違うのかを調べたい。 ベンチマークコード import threading import Queue from benchmarker import Benchmarker def thread_target(): x = 0 for i in xrange(1000): x += i def queuing_thread_target(start_queue, finish_queue, stop_event): w

    PythonのThreadを待機させるか、必要の度に作成するのかのベンチマーク比較
    clavier
    clavier 2015/02/10
    PythonのThreadを待機させるか、必要の度に作成するのかのベンチマーク比較 | Wizard In The Market
  • Python Hack-a-thon 2011.02 参加メモ - 科学と非科学の迷宮

    概要 イベント名 Python Hack-a-thon 2011.02 URL http://atnd.org/events/9977 日時 2011/02/19 9:00-19:00 場所 オラクル青山センター 13F S3,4,5,6 関連リンク twitterハッシュタグ #aodag togetter http://togetter.com/li/102904 @atsuoishimoto Python GC python.jp ドメイン保持者 日人で唯一PEP書いてる人 python の GC 参照カウント 循環参照は解放できない Python2.0 以前はこれしか実装してなかった マーク&スイープ C のコードで 300 行ほど GC の処理時間 gc.collect() 2.6 > 2.7 > 3.1 全体としては 100万オブジェクトで秒のオーダー GC はまりどころ g

    Python Hack-a-thon 2011.02 参加メモ - 科学と非科学の迷宮
  • 1