1
我正在學習Python的多線程。我的任務是一個排隊系統。這是我的代碼:Python線程:鎖定while語句
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()
如何最好地解決這個問題?
好點。通常我不使用'break'語句。但在這裏他們使用顯着的好處。謝謝 – BerndGit 2015-04-05 20:52:37