多线程:无法继续在主线程中工作

时间:2017-02-20 13:01:18

标签: python multithreading

我最近开始学习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循环。

预计会出现这种情况吗?如果是,有没有办法让我实现我需要的功能?

0 个答案:

没有答案