1.创建队列
Q=tf.FIFOQueue(10000,tf.float32)
10000 :队列大小
tf.float32: 队列数据类型
2.创建数据
var = tf.Variable(0.0)
data = tf.assign_add(var, tf.constant(1.0))
3.将数据放入队列
en_q=Q.enqueue(data)
4.创建队列管理器
qr=tf.train.QueueRunner(Q,enqueue_ops=[en_q]*2)
5.创建线程管理器
coor=tf.train.Coordinator()
6.开启线程
threads=qr.create_threads(sess,coord=coord,start=True)
7.回收线程
coord.request_stop()
coord.join()
完整代码
import tensorflow as tf
Q = tf.FIFOQueue(1000, tf.float32)
var = tf.Variable(0.0)
data = tf.assign_add(var, tf.constant(1.0))
en_q = Q.enqueue(data)
qr = tf.train.QueueRunner(Q, enqueue_ops=[en_q] * 2)
init = tf.initialize_all_variables()
with tf.Session() as sess:
sess.run(init)
coord = tf.train.Coordinator()
threads = qr.create_threads(sess, coord=coord, start=True)
for i in range(200):
print(sess.run(Q.dequeue()))
coord.request_stop()
coord.join()