我想运行一个线程,它将从正常的python操作填充计算图上的队列。该线程将使用sess
对象,一些张量和一些数据。
如何将数据传递给线程?
以下是一些示例:https://stackoverflow.com/a/34596212/258483
load_and_enqueue
函数应该在一个单独的线程中运行。它以
t = threading.Thread(target=load_and_enqueue)
t.start()
但是sess
和enqueue_op
如何到达线程内部?这些声明为函数参数,因此它不是闭包。那么,这个作者的错误或Python是否允许这种方式发送参数?
答案 0 :(得分:3)
如果你有一个函数def load_and_enqueue(foo, bar, baz):
# ...
foo_arg = ...
bar_arg = ...
baz_arg = ...
t = threading.Thread(target=load_and_enqueue, args=(foo_arg, bar_arg, baz_arg))
t.start()
并且你想在一个具有参数特定值的线程中运行它,你可以用这些参数启动它,如下所示:
{{1}}
N.B。 access control已被修改,因为它只是为了从封闭范围中捕获变量。