我的项目中有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过程中调用完全相同的命令,它可以正常工作。
我该如何解决这个问题?