假設我們有通用串行,並且我們正在監聽傳入字節。假設寫入速度超過,並且爲了不從串口中釋放字節,我們引入了緩衝區,然後執行下一步。串行監聽器只是將字節放入緩衝區(緩衝區寫入線程)和緩衝區讀取器以從緩衝區(緩衝區讀取線程)提取字節並分析數據。性能:並行連接隊列<Integer>作爲串行輸入緩衝區
如何有效的是用java 1.5 ConcurrentLinkedQueue<Integer>
考慮到裝箱和拆箱,同時從串行基本int incomingByte
和Queue<Integer>
之間切換?
限制:
- 沒有緩衝區大小限制
我知道,像int[] buffer[BUFFER_SIZE]
往往是固定大小的緩衝區被使用,但我想不會有緩衝極限的限制。
- 線程安全
最好是有線程安全箱子外面和不同步使用封閉液或者不服手動線程。
該代碼預計可在Android設備上運行。所以發送者可以是PC(寫入端口),並且接收器可以是非常慢的設備(從端口讀取)。字節隊列比整數隊列好,但環形緩衝區是我認爲最好的選擇。謝謝 – Anton