Python无法识别其他文件中的多处理信号量

时间:2017-09-13 19:08:54

标签: python python-3.x parallel-processing multiprocessing python-multiprocessing

我的项目中有3个不同的文件,Main.py,generator.py和multiplicator.py。这是一个使用phyton多处理模块乘以2矩阵的程序。我在Main文件中创建了一些信号量:

add_action('woocommerce_add_my_video', 'add_product_video');
function add_product_video(){

    echo "<iframe width='560' height='315' src='https://www.youtube.com/embed/JHN7viKRxbQ' frameborder='0' allowfullscreen></iframe>";

}

我正在尝试使用mutex_mult在multiplicator进程的init中锁定一个队列(我现在python有自己的互斥锁,但这是一个编程练习)。

from multiprocessing import Process, Semaphore, Queue, cpu_count, 
Value, Manager
from random import randrange
from generator import *
from multiplicator import *

mutex_mult = Semaphore(1)
sem_generator = Semaphore(1)

但是当我在主要调用Multiplicator的初始化程序时,我得到了

from Main import *

class Multiplicator(Process):
    def __init__(self, rows_matrix_1, matrix_2, queue, row_start):
        Process.__init__(self)
        self.queue = queue
        mutex_mult.acquire()
        self.matrix_final = queue.get()
        queue.put(self.matrix_final)
        mutex_mult.release()
        self.rows_matrix_1 = rows_matrix_1
        self.matrix_2 = matrix_2
        self.row_start = row_start

但是如果我在Generator过程中调用完全相同的命令,它可以正常工作。

我该如何解决这个问题?

0 个答案:

没有答案