私は何百もの場所でコンソールに出力するマルチスレッドプログラムを持っています。残念ながら、代わりにputsをスレッドセーフにする
Line 2
Line 1
Line 3
の私はputs
スレッドを安全にしようとしています
Line2Line1
Line3
を取得します。
(私はこの問題を持っていると思うが、それがなかったと仮定していない)Pythonで、私はRubyでこれをしようとしている
old_print = print
print_mutex = threading.Lock()
def print(*args, **kwargs):
print_mutex.acquire()
try:
old_print(*args, **kwargs)
finally:
print_mutex.release()
を行いたい
old_puts = puts
puts_mutex = Mutex.new
def puts(*args)
puts_mutex.synchronize {
old_puts(*args)
}
しかし、これは動作しません: "未定義のメソッドold_puts
"
を
スレッドセーフ(スレッドセーフ)部分行を印刷しない)?
ヒント: 'old_puts = puts'を実行すると、暗黙的に' old_puts = puts() 'を実行しています –