jjzjj

Multiprocessing

全部标签

python - 尝试多进程时如何修复 "TypeError: cannot serialize ' _io.BufferedReader' object"错误

我正在尝试将代码中的线程切换为多处理以衡量其性能,并希望实现更好的暴力破解潜力,因为我的程序旨在暴力破解受密码保护的.zip文件。但是每当我尝试运行该程序时,我都会得到:BruteZIP2.py-z"GenericZIP.zip"-fWorm.txtTraceback(mostrecentcalllast):File"C:\Users\User\Documents\Jetbrains\PyCharm\BruteZIP\BruteZIP2.py",line40,inmain(args.zip,args.file)File"C:\Users\User\Documents\Jetbrains

windows - 为什么 python 中的 pool.map 不起作用

importmultiprocessingasmuldeff(x):returnx**2pool=mul.Pool(5)rel=pool.map(f,[1,2,3,4,5,6,7,8,9,10])print(rel)当我运行上面的程序时,应用程序卡在一个循环中,无法停止。我在Windows中使用python3.5,有什么问题吗?这是我在屏幕上看到的:我是财务数据分析的新手;我正试图找到一种方法来通过并行计算解决大数据问题。 最佳答案 它不起作用,因为您是在shell中键入命令;尝试将代码保存在文件中并直接运行。不要忘记正确复制代码,

Python 处理系统关闭

我有一个多进程python应用程序,它在Windows上作为EXE运行。选择关闭操作系统后,应用程序会因进程关闭而抛出许多异常。有没有办法通过windows捕获系统关闭请求,这样我就可以自己处理多进程的关闭? 最佳答案 Anabble.com页面建议使用win32api.SetConsoleCtrlHandler:“Ineedtodosomethingwhenwindowsshutsdown,aswhensomeonepressesthepowerbutton.Ibelievethisisawindowmessage,WM_QUER

函数内的Python多处理: calling pool.映射

我正在尝试使用mutltiprocessing包在一个函数中使用多个CPU。当我在函数外部运行玩具示例时,它会在四分之一秒内运行,没有任何问题(见下文)。frommultiprocessingimportPoolimporttimestart=time.clock()deff(x):returnx*xif__name__=='__main__':withPool(processes=7)aspool:result=pool.map(f,range(1000))print(time.clock()-start)但是,当我将相同的代码改编成一个函数时(见下文),它会打印True以指示__n

python - Windows 机器上 IPython 控制台中的多处理 - 如果 __name_ 要求

我在Windows机器上使用IPython和SpyderIDE。当IDE启动时,会加载一组py文件来定义一些使我的工作更轻松的函数。一切都按预期进行。现在我想升级其中一个函数以使用多处理,但在Windows上这需要if__name__=="__main__":语句。所以我似乎无法直接调用该函数并从IPython控制台传递参数。例如,其中一个py文件(我们称之为test.py)可能类似于以下代码。importmultiprocessingasmpimportrandomimportstring#defineaexamplefunctiondefrand_string(length,out

Python:检测物理非 HT CPU 的跨平台解决方案?

我正在尝试使用跨平台方法检测机器上非超线程内核的数量。多处理的cpu_count只检测处理器总数,我可以在Linux机器上grep/proc/cpuinfo找到答案。不过,我正在寻找Windows解决方案。本新闻组thread有点帮助,但我仍然没有找到答案。 最佳答案 独立于平台且在python标准库中:psutil.cpu_count(logical=False) 关于Python:检测物理非HTCPU的跨平台解决方案?,我们在StackOverflow上找到一个类似的问题:

python - multiprocessing.manager 问题 sys.args

我正在一个多进程的小型Windows服务应用程序中运行以下python代码行。multiprocessing.Manager()问题是在运行Windows服务时,模块sys集中似乎没有属性argv。因此,我在python多处理fork库中发生了以下错误。我希望有人能够阐明这个问题。问题的堆栈跟踪(在Windows服务中运行multiprocessing.Manager时):File"C:\python27\lib\multiprocessing\__init__.py",line99,inManagerm.start()File"C:\python27\lib\multiprocess

在主进程中从标准输入进行阻塞读取时,Python 子进程阻塞

我有一个Python多处理应用程序,它使用多处理API启动“workers”。主进程本身由一个不是用Python编写的服务进程启动。工作人员可以自己使用subprocess.Popen启动其他非Python子进程。为清楚起见,这是整个流程层次结构:service.exe:服务进程(原生EXE)python.exe:Python主进程(下面的程序)python.exe:Python子进程(进程启动的任务函数)subprocess.exe:native子进程(见下面的解释)当服务进程停止时,它必须告诉Python进程退出。我为此使用标准输入。这样做的好处是,如果服务进程崩溃或被杀死,那么P

具有多处理功能的 Python 代码在 Windows 上不起作用

以下纯初学者代码在Ubuntu14.04(Python2.7.6)和Cygwin(Python2.7.8)上100%运行良好,但它在Windows64位(Python2.7.8)上挂起。我在使用multiprocessing包的另一个片段中观察到了同样的情况。frommultiprocessingimportProcess,QueuefromtimeimporttimedefWallisPi(N,out):#Pibythe(slowlyconvergent)Wallismethod.prod=1.0foriinxrange(2,N,2):prod=prod*(i**2)/((i+1)*

python - 是否可以在带有 Windows 的模块中使用多处理?

我目前正在研究一些预先存在的代码,目的是加快速度。有几个地方非常适合并行化。由于Python有GIL,我想我会使用多进程模块。然而,根据我的理解,这将在Windows上运行的唯一方法是,如果我使用if__name__=='__main__'保护从最高级别的脚本调用需要多个进程的函数。然而,这个特定的程序是作为一个模块分发和导入的,所以让用户复制和粘贴该保护措施有点笨拙,这是我真正想避免做的事情。就多处理而言,我是运气不好还是误解了什么?还是有任何其他方法可以在Windows上执行此操作? 最佳答案 对于仍在搜索的每个人:模块内部fr