私は、デーモンスレッドを実行するtkinterアプリケーションを構築しています。それにはmainloop()
があります。スレッド間の共有データの大部分はキューを経由しています。Pythonスレッド:スレッドが読み取り専用にするデータを表現する方法は?
別のスレッドクラスを別の.py
ファイルに作成しました。これをメインファイルにインポートしています。
メインファイルでは、ユーザーがGUIを使用して更新するSETTINGS
dictがあります。また、変更していない間に読み込めるようにするには別のスレッドが必要です。
私は約RLock
と考えましたが、私の理解からは通常両方のスレッドで使用されており、将来理解するのは少し混乱するかもしれません。
私は単純なものを探していますが、Pythonの組み込みソリューションでなければなりません。
EDIT:もう1つのスレッドが常にdictにアクセスし、メインスレッドがそれを更新するときを意識してはいけません。
他のスレッドが設定のコピーにアクセスする可能性があります。 –
可能な限り速くなるようにコードを作成する必要があります。同じ情報の他のコピーを作成したくないです。また、私は、他のスレッドが、それを繰り返し送信するためにメインスレッドなしで情報を読むことができるようにする必要があります。 – galah92
'collections.UserDict'のサブクラスを使用して所有者スレッドのIDを格納し、' '__setitem__''で現在のスレッドが所有者スレッドであることを確認できます。スレッドが書き込みしようとするとどうなりますか?例外を提起する?黙って失敗する? – daragua