【发布时间】:2014-05-30 19:26:38
【问题描述】:
我的程序是这样设计的:
- 程序的第一部分从传感器获取实时值并使用 Matplotlib 绘制它。这必须长时间完成。此外,它将信息记录到数据库中。
- 第二部分是网络摄像机。我必须从 IP 摄像机获取输入并显示它。为了显示我正在使用 OpenCV 的
imshow方法。另外,我正在存储来自 IP 摄像机的视频。
问题:我已经准备好算法,问题是我需要在一段时间循环中运行这两个算法。条件是我不能从其中任何一个中退出。现在线程是一个很好的选择,但我已经阅读了 GIL,那么我该如何运行两个无限循环呢?
from multiprocessing import Process
def methodA():
while TRUE:
do something
def methodB():
while TRUE:
do something
p=Process(target=methodA())
p.start()
p1=Process(target=methodB())
p1.start()
现在当我启动进程p 时它开始执行,之后我如何启动p1 以同时运行?
【问题讨论】:
-
如果您唯一关心的是运行无限循环,那么使用多线程并没有真正的问题。
-
另外,一旦我开始执行一个线程,当第一个线程连续/无限运行时如何执行另一个线程?
-
我不明白你的意思。有两个不同的线程并行执行。除非一个依赖于另一个,否则你没有真正的问题。
-
一个方法无限运行,我在一个线程中启动它,现在如何运行另一个线程?等等,我将添加一些代码来阐明问题。
-
@gravetii 请查看更新后的问题。我希望它有所帮助。
标签: python multithreading opencv matplotlib