需求:在Python-主线程控制子线程结束-2的基础上,添加在子线程中执行操作并获取结果的功能。
一种常见的方法是使用队列(Queue)或者共享变量,在子线程中存储结果,然后在主线程中获取这些结果。这种方法可以确保线程间的数据共享是线程安全的。
# 修改后的程序,主线程可以获取子线程的结果
import threading
import time
import queue
from loguru import logger
exit_program = False
class WorkerThread(threading.Thread):
def __init__(self, result_queue):
super().__init__()
self.stop_event = threading.Event()
self.result_queue = result_queue
static_variable = 0
def run(self):
thread_id = threading.get_ident()
print(f"Worker thread {thread_id} has started.")
while not self.stop_event.is_set():
print(f"Worker thread {thread_id} is running.")
# Simulate some work
result