python multiprocessing 多线程通过变量控制结束
时间: 2023-09-11 07:08:08 浏览: 170
可以通过设置一个全局变量来控制多线程的结束。具体步骤如下:
1. 导入`multiprocessing`模块
```python
import multiprocessing
```
2. 定义一个全局变量`is_stop`,用来控制线程的结束
```python
is_stop = False
```
3. 定义一个线程函数`thread_func`,在函数中判断`is_stop`是否为`True`,如果为`True`则结束线程
```python
def thread_func():
while True:
# do something
if is_stop:
break
```
4. 启动线程
```python
p = multiprocessing.Process(target=thread_func)
p.start()
```
5. 在需要结束线程的地方将`is_stop`设置为`True`
```python
is_stop = True
```
6. 等待线程结束
```python
p.join()
```
完整代码示例:
```python
import multiprocessing
is_stop = False
def thread_func():
while True:
# do something
if is_stop:
break
p = multiprocessing.Process(target=thread_func)
p.start()
# do something
is_stop = True
p.join()
```
注意,这种方式只是通过设置一个全局变量来控制线程的结束,不能保证线程能立即停止,因为线程可能在执行某些操作时无法检测到`is_stop`的变化。如果需要更快速、可靠地结束线程,可以考虑使用`Event`对象或`Queue`对象等线程间通信机制。
阅读全文