如何在单独的线程中在contextmanager下运行代码?

2024-04-24 03:35:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想有一个上下文管理器,我可以把一些代码在一个单独的线程中执行。你知道吗

到目前为止,我还没有找到一种方法来实现我想要的,最好的替代方法是在一个单独的线程中编写闭包和执行闭包。你知道吗

我想要这样的东西

# code runs on main thread
print("this is main thread")

with amazingcontextmanager:
    # code to run in separate thread
    print("this is not main thread")

编辑:让我再问一次我的问题

@contextlib.contextmanager
def amazingcontextmanager():
    try:
        yield
    finally:
        print("thread done")

我希望yield在新线程中执行。基本上,我放在contextmanager下的任何东西都应该在一个单独的线程中执行。你知道吗


Tags: 方法代码管理器ismainonrunscode