再帰関数を使用して数独ボードのすべての可能な順列を実行する数独ソルバーを Python でプログラムしました。プログラムは数独パズルを直線的に解決します。私は、タスクを異なるスレッドに分割することで、より速くしようとしています。ただし、スレッド化について多くの考えと調査を行った後でも、関数にスレッド化を実装する方法がわかりません。ここに私の機能があります
def solve(num,possible,temp):
y = num%9
x = num-y
try:
for xyz in possible[num]:
if num != 80:
if ispossibility(temp,xyz,x,y) == True:
temp[num] = xyz
solution = solve(num+1,possible,temp)
if solution != None:
raise exception
temp[num] = 0
else:
if ispossibility(temp,xyz,x,y) == True:
temp[num] = xyz
solution = copy(temp)
raise exception
except exception:
return solution
したがって、別のスレッドで「solution = solve(num+1, possible, temp)」という行を実行したいのですが、問題は、1 つのスレッドが答えを見つけたら、すべての個別のスレッドを停止する方法がわからないことです。何をすべきかについての指針はありますか?