Esempio n. 1
0
def processMain(matrixIdx):
    global mainPidProcess
    threads = []
    actualTasks = Tasks(os.getpid() - mainPidProcess, matrixIdx)

    lockErrors = threading.Lock()
    lockCompleted = threading.Lock()

    # for i in range(numthreads):
    #     threads.append(Thread(target=threadsVerify, args=(matrixIdx,actualTasks)))

    # for i in range(numthreads):
    #     threads[i].start()

    # for i in range(numthreads):
    #     threads[i].join()

    with ThreadPoolExecutor(max_workers=numthreads) as pool:
        for i in range(9):
            pool.submit(checkRow, matrixIdx, actualTasks, lockErrors,
                        lockCompleted)
            pool.submit(checkCollum, matrixIdx, actualTasks, lockErrors,
                        lockCompleted)
            pool.submit(checkArea, matrixIdx, actualTasks, lockErrors,
                        lockCompleted)

    with lock:
        actualTasks.setFinalLog()