私は次のようなものを持っています:
d = {...} #a dictionary with strings
l1 = [...] #a list with stuff
l2 = [...] #a list with numbers
...
for i in l1:
for key in l2:
#do some stuff
...
if d[key] == i:
print d[key]
スレッドを使用して同じことをしたいと思います(パフォーマンス向上のため)。私は次のようなことを考えています:
import threading
d = {...} #a dictionary with strings
l1 = [...] #a list with stuff
l2 = [...] #a list with numbers
...
def test(i, key):
#do the same stuff
if d[key] == i:
print d[j]
for i in l1:
for key in l2:
threading.start_new_thread(test, (i,key))
これが最善のアプローチであるかどうかはわかりません。私の最大の恐怖は、私がまったく最適化していないことです。いくつかの基本的なアイデアは次のとおりです。
- d は共有メモリにある必要があります (すべてのスレッドからアクセスできます)。同じエントリにアクセスするスレッドはないと思います。
- すべての (i, キー) の組み合わせを同時にテストする必要があります。
あなたの意見で、私が別の言語を使用する必要がある場合は、それを指摘していただければ幸いです. 助けていただければ幸いです。前もって感謝します。