Python中文
首页
教程
问答
标签
搜索
登录
注册
如何从Java启动独立、并发运行的Python进程
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个多线程Java应用程序,它通过<code>Runtime.exec()</code>调用Python程序。这个很好用。我现在希望每个Java线程启动自己的Python进程以实现并发性。 在这个过程中,我遇到了一个问题,即所有Python进程似乎都将自己限制在一个CPU上,因此每个进程只使用部分CPU来运行。在<code>top</code>中,我可以看到我的<code>n</code>Python进程。 使用<code>n=1</code>,进程使用100%的CPU。 对于<code>n=2</code>,两个进程都使用大约50%的CPU。 使用<code>n=10</code>,所有进程都使用大约10%的CPU</p> <p>在{<cd7>}中,我可以看到只使用了两个CPU:一个用于Java,另一个用于Python</p> <p>我认为运行多个Python进程将允许它们彼此完全独立地运行</p> <p>想法和提示?谢谢大家!</p> <p>编辑:下面是创建Python进程的代码。这不是一个简单的例子。如果这不够清楚,我会创建一个</p> <pre><code> ProcessBuilder builder = new ProcessBuilder(new String[]{"-u", "-c", script}); process = builder.start(); errorStreamConsumer = new ErrorStreamConsumer(process.getErrorStream(), options.getTerminationSignalFromErrorStream(), Thread.currentThread()); errorStreamConsumer.start(); log.debug("Started process with arguments {}", Arrays.toString(arguments)); BufferedInputStream bis = new BufferedInputStream(process.getInputStream()); BufferedOutputStream bos = new BufferedOutputStream(process.getOutputStream()); </code></pre> <p>其中<code>script</code>是作为字符串的完整Python脚本(不是文件名,而是实际的Python代码)<code>ErrorStreamConsumer</code>是打印出错误通道的线程。与进程的通信通过<code>bis</code>和<code>bos</code>输入和输出流运行</p> <p>我对每个Java线程都这样做。而且效果很好。除了Python进程似乎共享一个CPU之外</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>线程共享父进程的cpu。如果我们有5个线程,这并不意味着我们可以利用我们得到的所有5个核心,每个线程将共享主父进程的cpu/核心。 在您的情况下,10个线程共享100%的cpu,因此每个线程都有10%的cpu。 现在,每个线程都运行一个cpu占10%的python代码,因此这就是python的计算能力。 我建议您使用多处理而不是多线程。与此类似,每个java进程启动一个python进程,您可以部署多个java实例</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
3 回答
文本小部件:在没有输入时更新并在循环后保持空闲
8 回答
文本小部件tkin
5 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
6 回答
文本小部件tkinter复制图像选项
4 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
7 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
9 回答
文本小部件不显示lis中的内容
2 回答
文本小部件不显示Unicode字符
10 回答
文本小部件中写入的行间距
5 回答
文本小部件中的文本作为变量
3 回答
文本小部件中的滚动条仅显示在底部
1 回答
文本小部件中的选项卡键空间计数
3 回答
文本小部件作为Lis
1 回答
文本小部件在主框架中扩展列宽
1 回答
文本小部件未使用删除功能清除
7 回答
文本小部件滚动动画(Tkinter、Python)
3 回答
文本居中。格式正确吗?
3 回答
文本差分算法
4 回答
文本已知时音频文件中的单词索引
8 回答