• 进程间实现数据共享的三种方式


    1.Queue:

    -linux:

    q = multiprocessing.Queue()
    def task(arg,q):
    	q.put(arg)
    def run():
    	for i in range(10):
    		p = multiprocessing.Process(target=task, args=(i, q,))
    		p.start()
    	while True:
    		v = q.get()
    		print(v)
    run()
    

    -windows:

    import multiprocessing
    def task(arg,q):
    	q.put(arg)
    if __name__ == '__main__':
    	q = multiprocessing.Queue()
    	for i in range(10):
    		p = multiprocessing.Process(target=task,args=(i,q,))
    		p.start()
    	while True:
    		v = q.get()
    		print(v)
    

    2.Manager:(*)

    -Linux:

    m = multiprocessing.Manager()
    dic = m.dict()
    def task(arg):
    	dic[arg] = 100
    def run():
    	for i in range(10):
    		p = multiprocessing.Process(target=task, args=(i,))
    		p.start()
    	input('>>>')
    	print(dic.values())					
    if __name__ == '__main__':					
    	run()
    

    -windows:

    import time
    import multiprocessing
    def task(arg, dic):
    	time.sleep(2)
    	dic[arg] = 100
    if __name__ == '__main__':
    	m = multiprocessing.Manager()
    	dic = m.dict()
    	process_list = []
    	for i in range(10):
    		p = multiprocessing.Process(target=task, args=(i, dic,))
    		p.start()
    		process_list.append(p)
    	while True:
    		count = 0
    		for p in process_list:
    			if not p.is_alive():
    				count += 1
    		if count == len(process_list):
    			break
    	print(dic)
    

    3.其他电脑

    def task(arg,dic):
        pass
    
    if __name__ == '__main__':
        while True:
            # 连接上指定的服务器
            # 去机器上获取url
            url = 'adfasdf'
            p = multiprocessing.Process(target=task, args=(url,))
            p.start()		
    
  • 相关阅读:
    解决MySql报错:1130
    Mac 安装 RabbitMQ 出现的问题
    Java 中的关键字
    ExtJS 去除水印
    MAC VMware fusion 12.1.0 Centos7 网络配置
    Linux常见目录结构
    CentOS 设置网络及安装 ifconfig
    Web项目部署到IIS的方法
    异常处理-System.IO.IOException: 由于远程方已关闭传输流,身份验证失败
    C#委托总结-匿名方法&Lambda表达式
  • 原文地址:https://www.cnblogs.com/apollo1616/p/10351475.html
Copyright © 2020-2023  润新知