multiprocessing相关内容

如何使用 python Tornado 服务器在请求中最好地执行多处理?

我正在使用 I/O 非阻塞 python 服务器 Tornado.我有一类 GET 请求可能需要很长时间才能完成(想想在 5-10 秒的范围内).问题是 Tornado 会阻止这些请求,因此后续的快速请求会一直保持到慢速请求完成. 我看了:https://github.com/facebook/tornado/wiki/Threading-and-concurrency 并得出结论,我想要# ..
发布时间:2022-01-12 12:31:44 Python

单例 Bean 如何服务并发请求?

我有一个关于单例 bean 如何详细处理并发请求的问题. 我在 StackOverflow 上搜索过这个问题.这是一个示例来自stackoverflow的链接,但我只找到了高级细节.我想要关于单例 bean 如何处理并发请求以及系统处理器如何查看这些请求的完整详细信息. 我在线研究了系统处理器中的并发请求处理.他们说处理器本身有一个调度器,调度器将决定处理哪个请求. 好的.如果假 ..
发布时间:2022-01-12 12:31:36 Java开发

是否存在设置超时的 wait() 系统调用版本?

除了使用忙等待或忙睡眠循环之外,还有什么方法可以使用 wait() 系统调用超时? 我有一个父进程,它 forks 本身和 execs 子可执行文件.然后它等待子进程完成,以任何适当的方式获取其输出,并执行进一步的处理.如果该进程在一定时间内没有完成,则假定其执行超时,并执行其他操作.不幸的是,鉴于问题的性质,这种超时检测是必要的. 解决方案 没有等待超时的调用. 您可以做的是 ..
发布时间:2022-01-12 12:31:17 服务器开发

如何使用 multiprocessing.Queue.get 方法?

下面的代码将三个数字放在一个队列中.然后它尝试从队列中取回号码.但它永远不会.如何从队列中获取数据? 导入多处理queue = multiprocessing.Queue()对于范围内的 i (3):queue.put(i)虽然不是 queue.empty():打印 queue.get() 解决方案 我最初在阅读@Martijn Pieters 后删除了这个答案,因为他更详细和更早地描述了“ ..
发布时间:2022-01-12 12:30:58 Python

Python 多处理 Numpy 随机

在多处理调用的函数中,numpy ndarray 函数的范围是否不同?这是一个例子: 使用 python 的多处理模块我正在调用这样的函数: 范围内的核心(核心):#target 可以是 f() 或 g()proc = mp.Process(target=f, args=(core))工作.append(proc)对于工作中的工作:工作开始()对于工作中的工作:工作.join()定义 f ..
发布时间:2022-01-12 12:30:51 Python

Windows 上 Jupyter 中的 python 多处理:AttributeError:无法获取属性“abc"

我正在尝试运行一个简单的命令,该命令使用多处理按名称猜测性别.这段代码在以前的机器上工作过,所以也许我的设置与它有关. 下面是我的多处理代码: 导入系统导入 gender_guesser.detector 作为性别导入多处理进口时间d = 性别.Detector()defguess_gender(姓名):n = name.title() # 第一个字母大写,其余小写g = d.get_ge ..
发布时间:2022-01-12 12:30:45 Python

Python 多处理不断产生 pythonw.exe 进程而不做任何实际工作

我不明白为什么这么简单的代码 # 文件:mp.py从多处理导入过程导入系统定义函数(x):打印'作品',x + 2sys.stdout.flush()p = 进程(目标 = 函数,参数 = (2, ))p.start()p.join()p.terminate()打印“完成"sys.stdout.flush() 连续创建“pythonw.exe"进程并且它不打印任何东西,即使我从命令行运行它: ..
发布时间:2022-01-12 12:30:27 Python

内存中的静态和全局变量

栈中存储的静态变量是否类似于全局变量?如果是这样,它们如何受到保护以仅允许本地类访问? 在多线程上下文中,是否担心这块内存可以被其他线程/内核直接访问?或者为什么我们不能在多进程/线程环境中使用静态/全局? 解决方案 存储在堆栈中的变量本质上是临时的.它们属于一个函数等,当函数返回并且相应的堆栈帧被弹出时,堆栈变量随之消失.由于全局变量被设计为在任何地方都可以访问,因此它们不能脱离上 ..
发布时间:2022-01-12 12:30:17 C/C++开发

全局变量和 Python 多处理

可能重复: Python 多处理全局变量更新未返回给父级 我正在使用具有多个内核的计算机,为了提高性能,我真的应该使用多个内核.但是,我很困惑为什么这些代码没有达到我的预期: from multiprocessing import Processvar = 范围(5)def test_func(i):全局变量变量 [i] += 1如果 __name__ == '__main__':工作 ..
发布时间:2022-01-12 12:29:47 Python

在 Python 中使用 subprocess.Popen 检查进程的状态

如果我在 Python 中使用 subprocess.Popen 调用一个进程,如下所示: myproc = subprocess.Popen(...).communicate() 查看其状态的正确方法是什么?不是输出到 stdout 或 stderr,而是完成后的退出状态(例如,0 表示成功或另一个表示失败)? 解决方案 returncode确实是答案,但解决方案不需要复杂. ..
发布时间:2022-01-12 12:29:40 Python

多处理具有多个输入的函数

在 Python 中,multiprocessing 模块可用于在一系列值上并行运行函数.例如,这会生成 f 的前 100000 次评估的列表. def f(i):返回我 * 我定义主():导入多处理池 = 多处理.池(2)ans = pool.map(f, range(100000))返回答案 当 f 接受多个输入但只有一个变量变化时,是否可以做类似的事情?例如,您将如何并行化: def ..
发布时间:2022-01-12 12:29:04 Python

多处理队列最大大小限制为 32767

我正在尝试使用多处理编写 Python 2.6 (OSX) 程序,并且我想用超过默认的 32767 个项目来填充队列. 来自多处理导入队列Queue(2**15) # 引发 OSError Queue(32767) 工作正常,但任何更大的数字(例如 Queue(32768))都会失败,并出现 OSError: [Errno 22] Invalid argument 这个问题有解决办法吗? ..
发布时间:2022-01-12 12:28:49 Python

多处理 GUI 模式以对抗“无响应";阻塞

创建多处理/GUI 编码系统的最佳方法是什么? 我想为互联网社区创建一个地方来查找有关如何在 python 中使用 multiprocessing 模块的示例. 我在 Internet 上看到了几个在主模块中调用的简单全局函数的 multiprocessing 进程的小示例,但我发现这很少能轻松转化为任何人实际使用的任何东西关于 GUI.我认为许多程序将具有他们想要在单独进程中使用的功 ..
发布时间:2022-01-12 12:28:39 Python

Gevent 猴子补丁破坏多处理

我正在尝试使用多处理的池来运行一组进程,每个进程都将运行一个 gevent 的 greenlets 池.这样做的原因是有很多网络活动,但也有很多 CPU 活动,所以为了最大化我的带宽和我所有的 CPU 内核,我需要多个进程和 gevent 的异步猴子补丁.我正在使用多处理的管理器创建一个队列,进程将访问该队列以获取要处理的数据. 这是代码的简化片段: 导入多处理从 gevent 导入猴子m ..
发布时间:2022-01-12 12:28:14 Python

何时在进程上调用 .join()?

我正在阅读有关 Python 中的多处理模块的各种教程,但无法理解为什么/何时调用 process.join().例如,我偶然发现了这个例子: nums = range(100000)nprocs = 4def 工人(nums,out_q):""" 工作函数,在进程中调用.'nums' 是要考虑的数字列表.结果放在推送到队列的字典."""判决 = {}对于 n in nums:outdict[n ..
发布时间:2022-01-12 12:27:28 Python

带有生成器的 Python 多处理

我正在尝试处理一个文件(每一行都是一个 json 文档).文件的大小可以达到 100 mbs 到 gb 的.所以我写了一个生成器代码来逐行从文件中获取每个文档. def jl_file_iterator(file):使用 codecs.open(file, 'r', 'utf-8') 作为 f:对于 f 中的行:文档 = json.loads(line)产量文件 我的系统有 4 个核心,所以我 ..
发布时间:2022-01-12 12:27:19 Python

如何编写进程池 bash shell

我有10多个任务要执行,系统限制最多可以同时运行4个任务. 我的任务可以这样开始:myprog 任务名 如何编写 bash shell 脚本来运行这些任务.最重要的是,当一个任务完成后,脚本可以立即启动另一个任务,使正在运行的任务计数始终保持 4. 解决方案 我在编写自己的进程池时偶然发现了这个线程,特别喜欢 Brandon Horsley 的解决方案,虽然我无法让信号正常工作 ..
发布时间:2022-01-12 12:27:10 其他开发

具有分布式集群的 Python 多处理

我正在寻找一个 python 包,它不仅可以在单台计算机内的不同内核上进行多处理,而且还可以在分布在多台机器上的集群中进行多处理.有很多不同的用于分布式计算的 Python 包,但大多数似乎都需要更改代码才能运行(例如,表示对象位于远程计算机上的前缀).具体来说,我想要尽可能接近多处理 pool.map 函数的东西.因此,例如,如果在一台机器上,脚本是: 来自多处理导入池池 = 池(进程 = 8 ..
发布时间:2022-01-12 12:27:03 Python

python multiprocessing vs threading for cpu bound work on windows and linux

所以我敲了一些测试代码,看看多处理模块在 cpu 绑定工作上与线程相比如何扩展.在 linux 上,我得到了预期的性能提升: linux(双四核至强):serialrun 耗时 1192.319 毫秒并行运行耗时 346.727 毫秒线程运行耗时 2108.172 毫秒 我的双核 macbook pro 显示相同的行为: osx (双核 macbook pro)serialrun 耗时 20 ..
发布时间:2022-01-12 12:26:53 Python