【python – 跨进程共享多处理同步原语】教程文章相关的互联网学习教程文章

【python小随笔】进程池 multiprocessing.Pool的简单实现与踩过的坑【代码】

#导入进程模块 import multiprocessing#创建进程池 坑:一定要在循环外面创建进程池,不然会一直创建 pool = multiprocessing.Pool(30) for Size in Size_list:index,Size_Asin = Size.xpath(./@value)[0].split(",") Size_Asin_url = "https://www.amazon.cn/dp/%sth=1&psc=1" % Size_Asin # 拼接每个Size_Asin网页URL#任务进程池执行 坑:这一步要在循环里面执行pool.apply_async(self.Size_Asin_...

在OS X上运行的Python中读/写另一个进程内存

在Mac OS X Lion上运行时,是否可以使用Python读取/写入另一个进程内存(不是Python进程,并且不使用共享内存或任何东西)? 例如,我要启动Safari并监视Safari使用的多个内存地址. 在Windows中,我找到了很多解决方案,但是可以在Mac OS X上完成吗?解决方法:是的,它可以. 当然,这不是直接的,但是您可以从Python调用所需的任何C API,方法是在C(或Pyrex等)中构建Python扩展模块,或者在Python中使用ctypes. 您要调用的特定C API是task_for_...

为什么python子进程输出与shell不同?【代码】

我正在使用子进程模块来查找进程是否正在运行.但是当不存在查找过程时,结果会有所不同. 例如,在外壳中,如果不存在进程python test.py,则ps -ef | grep python | grep test | awk{print $2}’的输出为空.但是在python中:cmd="ps -ef|grep python|grep test|awk '{print $2}'" vp=subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) r=vp.communicate()[0]输出r不是None.它是执行cmd的shell的pid. 那么如何获得理想的结果呢?...

通过Python子进程的SSH密码【代码】

我正在编写一个GUI程序,以生成和监视SSH隧道,该组用户过于胆怯而无法使用命令行. 不幸的是,所讨论的服务器非常严格.通过RSA SecurID令牌进行的两因素身份验证是打开SSH连接的唯一官方认可的方法.不允许使用无密码的RSA公钥/私钥身份验证. 因此,我的程序有必要从文本输入框中读取密码,并将其发送给子SSH进程.不幸的是,ssh竭尽全力确保密码仅来自真实的键盘. 我强烈不希望使用第三方模块.我知道paramiko和pexpect(它们都是对类似问题...

【python】多任务(2. 进程)【代码】

进程间通信 Queue import multiprocessingdef download_from_web(q):# 模拟从网上下载数据data = [11, 22, 33, 44]for i in data:q.put(i)print("---数据下载已写入到队列---")def analysis_data(q):waitting_analysis_data = list()while not q.empty():waitting_analysis_data.append(q.get())print(str(waitting_analysis_data) + " <<< 数据拼接完毕")def main():# 1. 创建一个队列q = multiprocessing.Queue(4)# 2. 创建多个...

python-无需物理移动即可在进程之间共享数据【代码】

我有一份工作,可以完成很多单独的任务.对于每个任务,我需要下载一些数据,对其进行处理,然后再次上传. 我正在使用多处理池进行处理. 我有几个我不确定的问题. 首先,数据大约可以达到20MB,理想情况下,我希望将其移至子工作进程,而无需将其物理移动到内存中,也可以将结果数据也移回父进程,而无需移动.由于我不确定某些工具如何在后台运行,我不知道是否可以将数据作为参数传递给池的apply_async(据我了解,它会序列化对象,然后在到达子流...

如何使用MPI在Python中的进程之间共享数据?【代码】

我正在尝试并行化我编写的脚本.每个过程都需要进行计算,并将数据存储到数组的特定部分(列表列表).每个进程都在计算和存储其数据,但是我无法弄清楚如何从非根进程到根进程获取数据,以便它可以将数据打印到文件中.我创建了一个脚本的最低限度的工作示例,该脚本仅出于简化目的而设计为在2个内核上运行:from mpi4py import MPI import pdb import oscomm = MPI.COMM_WORLD size = comm.Get_size() rank = comm.Get_rank()# Declare ...

无法通过无限循环的boost.python模块中的Ctrl-c终止进程【代码】

我制作了一个带有无限循环的boost.python模块,但是我无法通过ctrl-c终止该进程.以下是一个示例. C#include <boost/python.hpp> #include <boost/python.module.hpp> #include <boost/python.def.hpp> #include <iostream> usring namespace boost::python;void foo() {int it=0;while (true) { //endless loop++it;std::cout<< it <<std::endl;sleep(3);} }BOOST_PYTHON_MODULE(ctopy) {def("foo",foo); }Pyth...

Python multiprocessing.Process对象的行为类似于在另一个进程中保存对对象的引用.为什么?【代码】

import multiprocessing as mpdef delay_one_second(event):print 'in SECONDARY process, preparing to wait for 1 second'event.wait(1)print 'in the SECONDARY process, preparing to raise the event'event.set()if __name__=='__main__':evt = mp.Event()print 'preparing to wait 10 seconds in the PRIMARY process'mp.Process(target = delay_one_second, args=(evt,)).start()evt.wait(10)print 'PRIMARY process, wakin...

python子进程终端mac osx【代码】

长期潜伏,第一次海报. 我知道整个Internet上有很多关于使用子进程的示例,但是我还没有找到一个示例来说明创建新的终端窗口并发送命令所需的步骤.有很多文章提供了解决方法,可通过直接子流程调用来启动工具和脚本,但是我还没有找到能真正回答如何正确向终端发送命令的原始问题的解决方法. 就我而言,我需要打开一个新的终端窗口,然后将路径发送到特定版本的应用程序,最后将路径发送到我希望在该应用程序中打开的文件. 我知道如何使用...

python-检查子进程调用是否成功执行【代码】

因此,我仍在自学Python,我想为服务器创建一个小脚本,该脚本将告诉我是否已安装HDD,以及是否在登录时不为我安装HDD.(我在?/ .bashrc中拥有它). . 我面临的问题是:try:with open('/media/Hitachi/mountfile.txt', 'r') as f:print(f.readline()) except:print('HDD is not mounted')if not os.path.exists('/media/Hitachi/media'):print('Attempting to mount HDD')script = subprocess.call('mountscript.sh', shell=True)如何确定...

python-即使子进程已关闭,MultiProcessing Pipe recv也会阻塞【代码】

阅读有关此主题的几个问题后,我现在知道子进程从父进程继承了文件描述符.当父母关闭连接时,这会使孩子更难收到EOFError. 但是我的情况恰恰相反,我不明白我面临的问题. 我有一个父进程,该进程启动一个子进程,并使其能够访问我创建的Pipe连接的一端.现在,当子进程完成,出现故障或其他任何情况时,所有操作都将停止并关闭连接.此时,子进程显示为已失效. 然后,我希望父进程的连接在阻塞的recv调用上抛出EOFError.但是相反,它只是坐在那里...

python-子进程PYGTK中的按钮Stop / Cancel progressBar【代码】

我一直在尝试向pygtk的进度栏添加取消按钮,但是现在可以使用该功能了.该功能的作用是执行和编写脚本,输出中的每一行都对其进行计数,并将其添加到progressBar中.我的问题是如何取消该子流程,有办法吗?def stop(self, widget):print "cancelar"os.killpg(self.p.pid, signal.SIGTERM) #=> not workingself.p.kill() #=> not workingcount = 0 command = "script.sh" self.p = subprocess.Popen(command, shell=True, bufsize=0, std...

Python读取Linux内存进程错误(/ proc / $pid / mem)【代码】

我已经在某些Linux发行版(Debian,Linux Mint …)上测试了以下代码,并且可以正常工作,但是在CentOS下,即使我以root身份运行,也会出现错误:#!/usr/bin/env python import re maps_file = open("/proc/18396/maps", 'r') mem_file = open("/proc/18396/mem", 'r', 0) for line in maps_file.readlines(): # for each mapped regionm = re.match(r'([0-9A-Fa-f]+)-([0-9A-Fa-f]+) ([-r])', line)if m.group(3) == 'r': # if this is...

python-Django进程生命周期

使用Django时,用于处理请求的Python进程可以存活多长时间?显然,给定的Python流程可为整个请求提供服务,但是否可以保证在所有请求中都能生存? 我问的原因是,当我导入某些模块时,我执行了一些昂贵的计算,并且想知道模块将被导入的频率.解决方法:这根本不是Django的功能,而是任何用于服务Django的系统.通常,它是通过诸如mod_wsgi之类的wsgi或诸如gunicorn之类的独立服务器而获得的,但可能与FastCGI甚至普通CGI完全不同. 关键是所有这...

同步 - 相关标签