问题描述
我想知道是否可以(如果可以,那么如何)在不更改其在代码中的“位置”的情况下创建新线程。
一个例子可能会更好地解释它:
import time
import random
print('foo') # Should be printed only once
new_thread_here()
time.sleep(random.randint(1,5))
print('end') # This should be printed twice (once per thread),each with a random sleep time (eg. 2 and 4 seconds)
无论如何要实现这个,或类似的东西??
如果相关,我的具体任务涉及构建一个异步上下文管理器,它将在单独的线程中的上下文中运行代码,而主线程跳过它并在代码中继续。
编辑
另一个例子:
def foo():
print('First')
print('Second')
new_thread_here() # This is where I would make the new thread
print('Third') # This is where the new thread would start
foo()
print('Done')
现在,如果我们看看 main 线程的预期结果:
>>> First
>>> Second
>>> Third
>>> Done
现在,让我们看看第二个(创建的)线程的预期结果。考虑它在 new_thread_here()
调用之后直接启动:
>>> Third
>>> Done
>>> First
>>> Second
>>> Third
>>> Third
>>> Done
>>> Done
我知道这可能是不可能的,但我不是线程处理方面的专家,所以我想在这里提问。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)