一例JAVA多執行緒訪問卡死的現象

2021-08-21 03:46:11 字數 406 閱讀 5508

起名?manager顯然不合適,叫worker最好。queue、cache都不是太適合。

資料佇列linkedblockingdeque,快取用concurrentlinkedqueue。

派發資料,當然要用執行緒。否則一阻塞就誤事了。

收到資料後,先在快取中查詢,找到合適的就從快取中刪除;沒有合適的新建。之後將資料複製後放入資料佇列中。

派發執行緒使用佇列取資料時(當然也可以使用休眠辦法),有資料就派發,派發結束後加入快取。

上述步驟顯然也是輕車熟路了。然後就發現,過一會就卡死。這是怎麼回事?經過檢查原因是:

音訊每次緩衝區大小一樣,所以數量有限即可解決。

試的結果,還是不行,會卡死。

又想了其他辦法。包括開始就新建好,,使用threadlocal,結果都不行。怎麼辦?暫時沒辦法

Java 執行緒內 遞迴 Bug 一例

乙個執行緒的run方法裡使用遞迴方法,出了bug。private boolean ispass string creationid else thread.sleep 1000 60 falg catch interruptedexception e ispass creationid else r...

java多執行緒 isAlive方法的有趣現象

多執行緒中的isalive方法相信大家都知道。無非就是當前執行緒如果是存活的,在執行中,則返回true,否則返回false,不過還是有些有趣現象的,我們這裡用 演示一下 class testthread extends thread public class alivetest 上面 結果 fals...

一例IE訪問IIS FTP超時故障的分析

天在windows 2003 server上安裝iis的ftp,伺服器開了windows防火牆,新增了例外 允許外界連線21埠。一切設定完畢,使用ie連線卻始終無法開啟,狀態列顯示 正在獲取資料夾的內容 最後提示 操作超時 在命令提示符下登陸一切正常,可以dir目錄內容,get檔案等。重新調整了ft...