[英]Server accessing two different type of threads
我有一台msgs服務器,具有2種不同類型的線程,一個從客戶端讀取,另一個在另一個客戶端中寫入(取決於接收方)...(是的,必須那樣,我不能在同一線程中讀/寫...)
我基本上需要將所有msg存儲在ArrayList(Server ?)
中的某個地方,直到其他客戶端連接到服務器之前,一直保持它們。
我的問題是:
我可以輕松地從線程中讀取對象,但是我看不到任何方法可以將對象提取到共享的ArrayList中,以便在另一個線程中訪問他。
--->Input Thread ---> ArrayList ---> OutputThread
聽起來您真正需要的是線程安全隊列,而不一定是ArrayList。 BlockingQueue接口專門用於這種事情。 您的輸入線程可以將消息放入隊列,而輸出線程可以刪除它們。 如果在輸出線程嘗試從中獲取消息時隊列為空,它將自動等待輸入線程添加消息。
有許多類可以實現BlockingQueue接口,但是您可能要使用以下兩種之一:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.