スレッド環境で実行するのが安全ではないPythonコードの例をいくつですか?例はフレームワーク関連である必要はありません。シンプルなPythonの例と警告が優先されます。ありがとう!スレッドセーフでないPythonコードの例は何ですか?
0
A
答えて
3
次の関数は、ファイルに書き込んだり、予測できない方法でファイルを上書きしたりすることがあります。
import threading
fp = open('f','w')
def work1():
for x in range(10000):
fp.write('1')
def work2():
for x in range(10000):
fp.write('2')
t1 = threading.Thread(target = work1)
t1.daemon = True
t2 = threading.Thread(target = work2)
t2.daemon = True
t1.start()
t2.start()
t1.join()
t2.join()
一方、ここでのロック機構は、ファイル出力が混ざるのを防止します。
import threading
lock = threading.Lock()
fp = open('f','w')
def work1():
with lock:
for x in range(10000):
fp.write('1')
def work2():
with lock:
for x in range(10000):
fp.write('2')
t1 = threading.Thread(target = work1)
t1.daemon = True
t2 = threading.Thread(target = work2)
t2.daemon = True
t1.start()
t2.start()
t1.join()
t2.join()
+0
GIL – JBernardo
+2
のために各 'fp.write()'が中断されないので、スレッドセーフではありません。このコードがスレッドセーフであるかどうかは実装に依存しますか?その場合、特に良い例です。一つのプラットフォームで開発したり、マルチスレッド関連のバグを取得したり、コードを別のプラットフォームに移動させるとコードがひどく機能する理由を理解できないからです。 – RoundTower
関連する問題
- 1. このコードはスレッドセーフではないのはなぜですか?
- 2. はPythonスレッドセーフで+ =ですか?
- 3. これはスレッドセーフなコードですか?
- 4. これはスレッドセーフなコードですか?
- 5. スレッドセーフなByteArrayOutputStreamとは何ですか?
- 6. このデュークはPythonでスレッドセーフですか?
- 7. はこのコードのスレッドセーフですか?
- 8. このコードはスレッドセーフですか? C#
- 9. このPythonプロデューサ - コンシューマロックレスアプローチはスレッドセーフですか?
- 10. `synchronized`キーワードを使用しないスレッドセーフなコードですか?
- 11. python zipファイルはスレッドセーフですか?
- 12. は、スレッドセーフなjavax.sql.DataSourceですか?
- 13. なぜC#のPythonラムダ式をスレッドセーフではないと呼びますか?
- 14. PHPスレッドセーフでWindows用でないスレッドセーフ
- 15. CのスレッドセーフなDBMライブラリとは何ですか?
- 16. このコードでNullリファレンス例外の原因は何ですか?
- 17. JMSセッションオブジェクトがスレッドセーフではないのはなぜですか?
- 18. jsp PageContextオブジェクトのライフサイクルは何ですか?スレッドセーフですか?
- 19. pythonの相対的な輸入のコード例では、
- 20. Python:ファイルベースのスレッドセーフなキュー
- 21. アクティブなpythonとpythonの違いは何ですか?
- 22. RxSwift/RxCocoaの次のコード例は何ですか?
- 23. このコード例のコンマは何ですか?
- 24. Pythonの例外安全性の状態は何ですか?
- 25. Rubyクラスのメソッドはスレッドセーフですか?例えば
- 26. Python 2.7:スレッドセーフである
- 27. このコードをスレッドセーフにするにはどうすればいいですか
- 28. チェーンされたスレッドセーフなコレクションはスレッドセーフですか?
- 29. 教育目的のために、本当にきれいでクリアな[R]コードの良い例は何ですか?
- 30. Pythonコードのプロファイリングとパフォーマンステストのベストプラクティスとツールは何ですか?
SOは特定のプログラミングに関する質問です。スレッドの安全性を表示できる無限のコードがあります。もっと具体的な質問がありますか? –