【发布时间】:2015-04-05 11:16:22
【问题描述】:
我正在使用 Python 学习多线程。我的任务是排队系统。这是我的代码:
lock = thread.allocate_lock()
while len(Queue)>0:
lock.acquire()
# get item from Queue
item = Queue[0, :]
Queue = np.delete(Queue, 0, 0)
lock.release()
# process item
# some code here
问题是队列在检查长度并应用锁后可能会被修改。
所以我需要类似的东西(这显然不是有效的代码):
while lock.acquire(), len(Queue)>0: # not working
item = Queue[0, :]
Queue = np.delete(Queue, 0, 0)
lock.release()
如何最好地解决这个问题?
【问题讨论】:
标签: python multithreading thread-safety