我最近开始学习python,我面临的情况是,我甚至不知道是否预期,或者是否有问题。
我正在学习并行线程,在同一个程序上有两个独立的进程(一个线程上的UI控件,另一个线程上的图像处理)
所以,为了测试这个,我创建了这个简单的代码: (相机是连接到USB网络摄像头的自定义类)
import thread
from vii.camera import Camera
class Process(object):
def __init__(self, width=800, height=600):
self._cam = Camera(width, height)
self._is_running = False
self._current_image = None
def start(self):
thread.start_new(self._run(), (self))
def _run(self):
self._cam.start()
self._is_running = True
while self._is_running:
self._current_image = self._cam.update()
self._current_image.show()
def get_image(self):
return self._current_image
def stop(self):
self._is_running = False
self._cam.close()
thread.exit()
process = Process()
process.start()
print("You will never see this output")
while (True):
key = raw_input()
if key == 'q':
process.stop()
break
线程创建成功,我能够看到图像。现在,我需要能够从主线程中影响它(停止它,从中获取数据)。但问题是代码永远不会进入while循环。
预计会出现这种情况吗?如果是,有没有办法让我实现我需要的功能?