zoukankan      html  css  js  c++  java
  • python管道pipe,两个进程,使用管道的两端分别执行写文件动作,带锁(lock)

    #coding=utf-8
    import multiprocessing as mp

    def write_file(content,lock):
        lock.acquire()
        with open(r"d:\0409.txt",'a') as fp:
            fp.write(content+' ')
        lock.release()


    def proc_1(pipe,lock):
        pipe.send('Hello!')
        info=pipe.recv()
        print "proc_1 received:%s" %info
        write_file(info,lock)
        pipe.send('what is your name?')
        info=pipe.recv()
        write_file(info,lock)
        print "proc_1 received:%s" %info

    def proc_2(pipe,lock):
        info=pipe.recv()
        print "proc_2 received:%s" %info
        write_file(info,lock)
        pipe.send("hello,too!")
        info=pipe.recv()
        print "proc_2 received:%s" %info
        write_file(info,lock)
        pipe.send("don't tell you!!")
       

    if __name__ == '__main__':
        lock=mp.Lock()
        pipe=mp.Pipe()
        print type(pipe)
        p1=mp.Process(target=proc_1,args=(pipe[0],lock))
        p2=mp.Process(target=proc_2,args=(pipe[1],lock))
        p2.start()
        p1.start()
        p2.join()
        p1.join()

    c:Python27Scripts>python task_test.py
    <type 'tuple'>
    proc_2 received:Hello!
    proc_1 received:hello,too!
    proc_2 received:what is your name?
    proc_1 received:don't tell you!!

  • 相关阅读:
    Vue条件判断
    揭秘webpack plugin
    vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多
    npx 是什么?
    PAT 1100 Mars Numbers[难]
    PAT 1075 PAT Judge[比较]
    PAT 1083 List Grades[简单]
    PAT 1082 Read Number in Chinese[难]
    PAT 1135 Is It A Red-Black Tree[难]
    PAT 1127 ZigZagging on a Tree[难]
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/8758415.html
Copyright © 2011-2022 走看看