问题标签 [multiprocess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
828 浏览

python - Python/Twisted - 发送到特定的套接字对象?

我在一个节点上有一个“管理器”进程,还有几个工作进程。管理器是拥有与客户端的所有连接的实际服务器。管理器接受所有传入的数据包并将它们放入队列中,然后工作进程将数据包从队列中拉出,处理它们并生成结果。他们将结果发送回管理器(通过将它们放入另一个由管理器读取的队列中),但这是我卡住的地方:如何将结果发送到特定的套接字?在单个进程上处理数据包时,这很容易,因为当您收到一个数据包时,您只需在上下文中抓取“传输”对象即可回复它。但是我将如何使用我正在使用的方法来做到这一点?

0 投票
8 回答
18499 浏览

python - python中的多进程或线程?

我有一个 python 应用程序,它可以获取数据集合,并且对于该集合中的每条数据,它都会执行一项任务。该任务需要一些时间才能完成,因为存在延迟。由于这种延迟,我不希望每条数据随后都执行任务,我希望它们都并行发生。我应该使用多进程吗?或线程这个操作?

我尝试使用线程但遇到了一些麻烦,通常有些任务永远不会真正触发。

0 投票
5 回答
11781 浏览

architecture - 谷歌浏览器如何在看起来像单个应用程序的同时将选项卡隔离到单独的进程中?

我们被告知 Google Chrome 在单独的进程中运行每个选项卡。因此,一个选项卡中的崩溃不会导致其他选项卡出现问题。

AFAIK,多进程主要用于没有 GUI 的程序中。我从未读过任何可以将多个 GUI 进程嵌入到一个中的技术。

Chrome 是如何做到这一点的?

我问这个问题是因为我正在设计闭路电视软件,它将使用来自多个相机制造商的视频解码 SDK,其中一些远非稳定。所以我更喜欢在不同的进程中运行这些 SDK,我认为这与 Chrome 类似。

0 投票
2 回答
8045 浏览

python - python线程/分叉?

我正在制作一个需要同时做 3 件事的 python 脚本。什么是实现这一目标的好方法,就像我听说的关于 GIL 的事情一样,我不再那么倾向于使用线程了。
脚本需要做的两件事将非常活跃,他们将有很多工作要做,然后我需要在用户询问时通过套接字向用户报告第三件事(所以它会像一个很小的服务器)关于其他 2 个进程的状态。
现在我的问题是什么是实现这一目标的好方法?我不想拥有三个不同的脚本,而且由于 GIL 使用线程,我认为我不会获得太多性能,而且我会让事情变得更糟。
是否有一个 fork() for python 像在 C 中那样从我的脚本中分叉 2 个进程来完成他们的工作并从主进程向用户报告?以及如何从分叉进程与主进程进行通信?

LE: : 更准确地说,1thread 应该从 imap 服务器获取电子邮件并将它们存储到数据库中,另一个线程应该从 db 获取需要发送的消息然后发送它们,主线程应该是一个微型 http 服务器,它将只需接受一个 url,就会以 json 格式显示这两个线程的状态。那么线程好吗?工作会同时完成还是由于 gil 会出现性能问题?

0 投票
1 回答
2273 浏览

python - Python 进程被 urllib2 阻止

我设置了一个进程,该进程读取要下载的传入 url 队列,但是当 urllib2 打开连接时,系统挂起。

从另一个模块我可以添加 url,当我需要时,我可以停止进程并等待进程关闭。

问题是当我使用 urlopen ("response = urllib2.urlopen(request)") 时,它仍然全部被阻止。

如果我调用 download() 函数或仅使用没有 Process 的线程,则没有问题。

0 投票
1 回答
1228 浏览

c - 为什么我的 Berkeley DB 并发数据存储应用程序挂起?

尝试打开并发数据存储 (CDB) 数据库进行读取时,我的应用程序挂起:

我怀疑数据库环境认为另一个进程已打开数据库以供写入。然而,情况并非如此,因为所有访问数据库的应用程序都是通过我编写的接口库来访问数据库的,该接口库通过 atexit() 系统调用注册终止函数,以确保 DB 和 DB_EN​​V 句柄都正确关闭——并且所有先前执行的应用程序都正常终止。

接口库像这样打开数据库:

此代码没有遇到任何错误。

接口库还注册了以下代码,以便在任何使用接口库的进程退出时执行:

正如我所指出的,所有先前执行的使用接口库的进程都正常终止。所有此类进程都是单线程的。

我在以下平台上使用 Berkeley DB 的 4.8.24.NC 版本:

有任何想法吗?

0 投票
3 回答
3078 浏览

log4net - 来自 .net、用户模式和驱动程序的 ETW 跟踪

我们有一个应用程序,它的一部分位于 .net、c++ 用户模式和 C++ 驱动程序中。该应用程序分为几个可执行文件,这些可执行文件按需运行并使用 LPC 相互通信(进程在不同的会话中运行(winlogon))。

目前我们有一个家庭编写的日志服务,.net 和 c++ 用户模式通过发送 LPC 消息与之通信。驱动程序使用 DbgPrint 并且并不总是启用,因为它会导致代码运行速度慢 30%(我们有很多日志记录)。

我想把所有的日志都写在一个地方,最好不要自己写记录器(我喜欢 log4cpp 和 log4net)。要求是将所有可执行文件和驱动程序写入一个位置并具有最小的开销。

我已经读过 ETW 是可行的方法,但是我无法找到已经编写的记录器,它使用它,如 log4cpp 或 log4net。

所以基本上我的问题是,你知道是否已经实现了我可以使用的 log4cpp 和 log4net 的 ETW 附加程序?

0 投票
1 回答
442 浏览

php - 在 PHP 中控制进程并发

我编写了一个简单的应用程序,每 X 分钟检查一次图像在多个网站中是否发生更改并下载它。这很简单:下载图像标题,进行一些 CRC 检查,下载文件,在 MySQL 数据库中存储有关每个图像的一些数据并处理下一个项目......

此过程大约需要 1 分钟才能完成。

问题是我注意到,当服务器正在执行这个过程时,我无法访问网站中的任何页面,即使是那些不需要 MySQL 的页面。

我不知道它为什么会发生,我也不知道如何解决它。也许更高级的 PHP 程序员可以帮助我。

0 投票
3 回答
3930 浏览

c++ - 多线程和多进程的性能差异

几年前,在Windows环境下,我做了一些测试,让CPU计算密集型+内存访问密集型+I/O访问密集型的应用程序运行多个实例。我开发了两个版本:一个在多处理下运行,另一个在多线程下运行。

我发现多处理的性能要好得多。我在其他地方读过(但我不记得那个网站了)。

其中说明原因是在多线程下,它们在为单个内存管道和 I/O 管道“战斗”,这使得与多处理相比性能更差

但是,我再也找不到那篇文章了。我想知道,直到今天,以下是否仍然成立?

在 Windows 中,让算法代码在多处理下运行,性能很有可能优于多线程。

0 投票
4 回答
4452 浏览

python - python多线程/多进程代码

在下面的代码中,我正在考虑使用多线程或多进程从 url 中获取。我认为游泳池是理想的,任何人都可以帮助提出解决方案..

想法:池线程/进程,收集数据......我的偏好是进程而不是线程,但不确定。