Parallel processing python3:并行运行C文件和python脚本

Parallel processing python3:并行运行C文件和python脚本,parallel-processing,multiprocessing,subprocess,python-3.5,Parallel Processing,Multiprocessing,Subprocess,Python 3.5,我在这篇文章中截取了我实际编写的python脚本。基本上,我希望有一个C程序和一个并行执行的Pyserial函数(C程序用于控制电机,Pyserial用于与arduino通信)。我的程序将使用Spyder3和Rasbian在RPi3b上执行。 我已经从下面的资料中了解到,如果你想让一个终端程序在python中执行,你应该使用subprocess类。如果您希望并行执行某些操作,则来自multiprocessing的进程包将完成此任务。 所以我把它们混合在一起,试图用代码bleow来归档我的目标。不

我在这篇文章中截取了我实际编写的python脚本。基本上,我希望有一个C程序和一个并行执行的Pyserial函数(C程序用于控制电机,Pyserial用于与arduino通信)。我的程序将使用Spyder3和Rasbian在RPi3b上执行。 我已经从下面的资料中了解到,如果你想让一个终端程序在python中执行,你应该使用subprocess类。如果您希望并行执行某些操作,则来自multiprocessing的进程包将完成此任务。 所以我把它们混合在一起,试图用代码bleow来归档我的目标。不幸的是没有任何成功。调用p1进程[p1=process(target=run_c_file())]后,p1进程立即启动,脚本停止,直到c文件完成。有人能帮忙吗?多谢各位

顺便说一句,我正在使用python 3.5

我的资料来源: ,

试一试


当前您正在调用函数,而不是传递函数。

如果希望Python程序启动外部程序,那么外部程序的实现语言与此无关。哇!炒锅!谢谢!
import serial_comm as ssf #My own function. Tested and working when single calling

import subprocess as sub
from multiprocessing import Process

def run_c_file():
  sub.run("./C_File") #Call the C File in the same directory. Immeidatly starts when script is at line 14 -> p1 = Process(target=run_c_file())


def run_pyserial(ser_obj):
  ssf.command(ser_obj,"Command") #Tell the arduino to do something fancy (tested and working)

ser_obj = ssf.connect()
p1 = Process(target=run_c_file())
p2 = Process(target=run_pyserial(ser_obj))

try:
    p1.start()
    p2.start()
    p1.join() #Process one should start here (as far as I understood)
    p2.join() #Process two should start here (as far as I understood)
'''The following part is still in progress'''
except KeyboardInterrupt:
    print("Aborting")

p1.terminate()
p2.terminate()
p1 = Process(target=run_c_file)
p2 = Process(target=run_pyserial, args=(ser_obj,))