这是一个创建于 1546 天前的主题,其中的信息可能已经有所发展或是发生改变。
比如说我一次创建 10 个线程,当我想关闭(满足条件的)其中一个线程时,如何关闭,而不影响其他 9 个线程的运行
第 1 条附言 · 2020-07-28 12:27:53 +08:00
主要场景,就是我的线程函数(读取视频流地址)都是死循环,我需要手动去关闭,我想要关闭的线程,
是继承线程类,去加一个标记,进而控制每个线程的开启关闭状态吗?线程池的实现方法大神们 可以清楚点吗,下面是代码
def get_img(url):
cap = cv2.VideoCapture(url)
while True:
ret, img = cap.read()
#业务处理
if __name__ == '__main__':
urls = ['rtmp://xxxxxx', 'rtmp://xxxxxx', 'rtmp://xxxxxx']
for url in urls:
th = Thread(target=get_img, args=(url,))
th.start()
#比如说我想关闭列表里其中一个 url 的线程,而不影响其他线程的运行
4 条回复 • 2020-07-28 10:22:37 +08:00
|
|
1
dicc 2020-07-27 18:00:06 +08:00
在线程 里面 while 1: 当条件满足时 return 不就得了
|
|
|
2
fasionchan 2020-07-27 18:58:52 +08:00
你应该通过某种机制,发一个消息给想要关闭的线程,它接到消息后自动退出。推荐看看 Queue
|
|
|
3
jeeyong 2020-07-28 00:33:39 +08:00
退出方式其实无外乎就那么几种.... while + return while + break 或者线程池+退出条件 if xxx then retun xxx
|
|
|
4
leimao 2020-07-28 10:22:37 +08:00
虽然你描述的还是不够 detailed,但是感觉就直接用 future 就行了。一个 future 控制一个 thread 。
|