小编Can*_*ode的帖子

如何在单独的线程中的上下文管理器下运行代码?

我想要一个上下文管理器,我可以在其中放置一些要在单独的线程中执行的代码。

到目前为止,我找不到一种方法来实现我想要的,最好的选择是编写闭包并在单独的线程中执行闭包。

我想要这样的东西

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

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

Run Code Online (Sandbox Code Playgroud)

编辑:让我尝试再次问我的问题

@contextlib.contextmanager
def amazingcontextmanager():
    try:
        yield
    finally:
        print("thread done")
Run Code Online (Sandbox Code Playgroud)

我想yield在新线程中执行。基本上我放在 contextmanager 下的任何内容都应该在单独的线程中执行。

python multithreading python-multithreading python-3.x

8
推荐指数
1
解决办法
700
查看次数