0

再帰関数を使用して数独ボードのすべての可能な順列を実行する数独ソルバーを 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 つのスレッドが答えを見つけたら、すべての個別のスレッドを停止する方法がわからないことです。何をすべきかについての指針はありますか?

4

0 に答える 0