0
私はスレッドしたコードを書いています。いろいろな関数を同時に使っています。スレッドごとに異なるref
という変数があります。関数間のPython共有変数ですが、スレッドではありません
ref
はスレッド関数内の関数内で定義されているため、グローバルref
を使用すると、すべてのスレッドは同じ値(ref
)を使用します。しかし、グローバルref
を使用しない場合、他の関数は定義されていないのでref
を使用することはできません。
例えば:
def threadedfunction():
def getref():
ref = [get some value of ref]
getref()
def useref():
print(ref)
useref()
threadedfunction()
引数と戻り値について聞いたことがありますか?あなたは、データを関数間でやりとりするためにそれらを使用する必要があります。 – user2357112
これはマルチスレッド化することを検討する前に100%快適にする必要があるものです。 – user2357112
スレッド間で書いているのであれば、スレッドセーフなタイプも使用する必要があります。 Pythonの組み込み型は安全であるとは保証されません。 –