複数のスレッドとモジュールから共有キューを使用したいと考えています。次の Python コードがあります。
# moda.py
import queue
import modb
q = queue.Queue()
def myPut(x):
q.put(x)
def main():
print('moda:', str(id(q)))
modb.go()
q.get()
if __name__ == '__main__':
main()
と
# modb.py
import moda
import threading
def something():
print('modb:', str(id(moda.q)))
moda.myPut('hi')
def go():
threading.Thread(target = something).start()
something
スレッド 1 でsomethingElse
呼び出され、スレッド 2 で呼び出されます。これら 2 つのメソッドでは のアドレスが異なります。これが、 への呼び出しが返さq
れない理由です。get
どうすればこれを回避できますか? 循環インポートのためですか、それともマルチスレッドのためですか?