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+'\n')
    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:\Python27\Scripts>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!!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM