将子进程输出传递给多处理函数

2021-10-17 18:10:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试两个并行运行下面的函数,但是其中一个函数需要作为参数传递给另一个

功能1:

def beginRecvTest():

  incoming = Popen("receivetest -f=/pcan33".split(), stdout = PIPE)
  processing = iter(incoming.stdout.readline, "")
  lines = list(processing)
  print processing
  return lines

功能2:

def readByLine():


  i = 0
  while (i < len(lines)):
    system("clear")

    if(lines[i][0].isdigit()):
        line = lines[i].split()
        dictAdd(line)
    else:
        next


    print ; print "-" *80
    for _i in mydict.keys():
        printMsg(mydict, _i)

    print "Keys: ", ;  print mydict.keys()
    print ; print "-" *80
    sleep(0.3)
    i += 1

函数调用:

if __name__ == "__main__":

   process1 = Process(target=beginRecvTest)
   process1.start()
   process2 = Process(target=readByLine, args=(process1,))
   process2.start()
   process1.join()
   process2.join()

不幸的是,我不知道如何将其作为参数传递,process1中的代码似乎挂起在:

lines = list(processing)

出于某种原因,程序需要将已经读入列表的行传递给process2,同时仍在process1中读取和排序。你知道吗

有人能帮忙吗?你知道吗