2014-03-01 36 views
2

我的代碼:Queue.Poll()是返回空但Queue.size()> 0在java中隊列

while(Memo.qRcv.size() > 0) { 
    MessageReceived msg=Memo.qRcv.poll(); 
    ... 
} 

然後我

2014-03-01 11:09:36 DEBUG [Thread-16] (threadQueueSendtoUser.java:163) - Memo.qRcv = null, size = 41590 
+0

while(Memo.qRcv.size()> 0)? –

+0

你是什麼意思? –

+0

我的意思是你的循環語句是不正確的 –

回答

2

我發現解決方案利用的ConcurrentLinkedQueue http://www.javacodex.com/Concurrency/ConcurrentLinkedQueue-Example

這裏

問題是我用2線程來處理一個隊列,不應該使用正常隊列。我會反饋如果有任何問題

謝謝大家

+0

只要您在其上同步或採取其他措施以確保線程安全,您就可以使用「正常隊列」。 – EJP

+0

@EJP你能給我舉個例子,我沒有在同步 –

+0

犯錯,「同步(隊列)的經驗?這是一個謎嗎? – EJP

相關問題