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!!

  • 相关阅读:
    HDU 4358 莫队算法+dfs序+离散化
    HDU 5692 线段树+dfs序
    Codeforces Round #377 (Div. 2) A B C D 水/贪心/贪心/二分
    LVS负载均衡的三种模式和八种算法总结
    hdfs 常用命令
    Linux 系统监控
    CentOS 7 时区设置
    kubernetes 留言版DEMO
    CentOS7 PostgreSQL 主从配置( 三)
    Postgres数据库在Linux中优化
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/8758415.html
Copyright © 2011-2022 走看看