我现在有两个线程,一个子线程,一个主线程,主线程执行脚本流程,子线程死一个死循环,作用是返回主线程想要的值,怎样让子线程返回主线程想要的值,注意子线程不能结束
时间: 2023-07-16 18:13:43 浏览: 52
可以使用共享变量的方式实现子线程返回主线程想要的值。具体实现方法如下:
1. 在主线程中定义一个共享变量,例如result。
2. 在子线程中使用while循环不断读取result的值,直到主线程将result赋值为想要的值。
3. 在主线程中执行完需要的操作后,将result赋值为想要的值。
4. 子线程会不断读取result的值,直到主线程将其赋值为想要的值,然后返回这个值给主线程。
示例代码如下:
```
import threading
# 定义共享变量result
result = None
# 子线程函数
def thread_func():
global result
while result is None:
pass # 等待主线程赋值
return result
# 主线程函数
def main_func():
global result
# 执行需要的操作
result = "想要的值"
# 创建子线程
t = threading.Thread(target=thread_func)
t.start()
# 等待子线程返回结果
res = t.join()
print(res)
# 执行主线程函数
main_func()
```
在上面的代码中,主线程执行完需要的操作后,将result赋值为"想要的值",然后创建子线程并启动它。子线程中使用while循环不断读取result的值,直到主线程将result赋值为想要的值,然后返回这个值给主线程。最后主线程打印子线程返回的结果。
阅读全文