我是一名电气工程师,试图在 python2.7 中进行多处理。我有两个示波器,它们需要对 2 个不同的信号运行相同的测试。
现在,我有一个代码可以按顺序执行并且需要很长时间。
我想在两个示波器上同时进行测量,并将结果正确地一个接一个地放入日志记录功能。
我正在尝试使用对我有帮助的multiprocessing或concurrent.futures。
这是我需要帮助的地方。
我的测试是python函数
def test1(scope_num):
recall_setup() #talk to scope over network
a = read_measurments()
return a
def test2(scope_num):
recall_setup() #talk to scope over network
a = read_measurments()
return a
下面是我的主循环
scope1=scipycmd(ip_addr_1)
scope2=scipycmd(ip_addr_2)
def control_prog():
result=emptyclass()
for temperature in [0,25,100]:
for voltage in [600,700,800]:
init_temp_volt(temperature, voltage)
for scope in [scope1,scope2]:
result.test1 = test1(scope)
result.test2 = test2(scope)
logfile.write_results(results)
control_prog()
Q1。如何使其同时并行处理范围 1 和范围 2?
Q2。如何处理日志记录?
如果有人可以指导我,将非常有帮助
编辑:好的..我尝试了多进程和多线程方法,多进程方法是最快的(显然)。但是现在日志记录仍然是一个问题。
我试过的
scope=([scope0],[scope1])
def worker():
test1()
test2()
def mp_handler(var1):
for indata in var1:
p = multiprocessing.Process(target=worker, args=(indata[0]))
p.start()
执行得很漂亮,但日志记录不起作用。