zoukankan      html  css  js  c++  java
  • 进程间简单通信

    方法一,进程Queue

    import multiprocessing,time,os
    import threading
    
    # print("主进程的父PID:",os.getppid())  #即pytharm进程ID
    # print("主进程的PID:",os.getpid())
    
    def sub(q):
        print("sub process")
        print("子进程的父PID:", os.getppid())
        print("子进程的PID:", os.getpid())
        q.put("aaa")
    q = multiprocessing.Queue()
    if __name__ == '__main__':
        t = multiprocessing.Process(target=sub,args=(q,))
        t.start()
        print(q.get())
      t.join()等待进程返回

      

    方法二,进程pipe

    import multiprocessing,time,os
    import threading
    
    def sub(q):
        print("sub process")
        print("子进程的父PID:", os.getppid())
        print("子进程的PID:", os.getpid())
        q.send("aaa")
        q.send("bbb")
    if __name__ == '__main__':
        pare_conn,chil_conn = multiprocessing.Pipe()
        t = multiprocessing.Process(target=sub,args=(chil_conn,))
        t.start()
        print(pare_conn.recv(),pare_conn.recv())  #跟socket通信一样,如果多recv没有数据会一直卡着直到有数据发来
    

      。。。

  • 相关阅读:
    Concurrent
    Java多线程状态切换
    Java中volatile如何保证long和double的原子性操作
    协程与线程
    线程饥饿
    线程活锁
    线程死锁
    Java Thread之start和run方法的区别
    ThreadLocal内存泄漏
    interrupt和interrupted和isInterrupted的区别
  • 原文地址:https://www.cnblogs.com/alex-hrg/p/9053684.html
Copyright © 2011-2022 走看看