我创建了两个进程,但它们没有根据此代码启动。 任何想法是什么问题?
import serial
from multiprocessing import Process
ser=serial.Serial('COM8',115200)
c=" "
out=" "
def pi():
print ("started")
out=" "
while 1:
# loop contents
def man():
while(1):
# loop contents
p1=Process(target=pi,args=())
p2=Process(target=man,args=())
p1.start()
p2.start()
p1.join()
p2.join()
答案 0 :(得分:3)
我猜你正在使用Windows ......
将您的初始化代码放在if __name__ == '__main__':
块中:
import serial
from multiprocessing import Process
ser=serial.Serial('COM8',115200)
c=" "
out=" "
def pi():
print ("started")
out=" "
while 1:
# loop contents
def man():
while(1):
# loop contents
if __name__ == '__main__':
p1=Process(target=pi,args=())
p2=Process(target=man,args=())
p1.start()
p2.start()
p1.join()
p2.join()
在Windows上,要解决缺少fork()
每个新启动的子进程必须导入__main__
模块,所以你会遇到无休止的产生进程循环,除非你不这样做保护您的初始代码。