二、channel
三、selector
四、bio與nio的區別
buffer本質上就是一塊記憶體區,可以用來寫入資料,實現子類有bytebuffer、charbuffer、doublebuffer、floatbuffer、intbuffer、longbuffer 和 shortbuffer。
優點:少一次記憶體拷貝,自己管理儲存,適合分配給占用記憶體大、壽命長的物件(網路傳輸、檔案讀寫)。注意:設定堆外記憶體大小限制(maxdirectmemorysize)
channel相比io中的stream更加高效,可以非同步雙向傳輸,但是必須和buffer一起使用。
public
class
noiserver
if(buffer.
position()
==0)//從buffer中讀取資料
buffer.
flip()
;byte
result=
newbyte
[buffer.
limit()
];buffer.
get(result)
; system.out.
println
("收到資料:"
+new
string
(result));
//響應資料
//包裝要傳送的資料
bufferedreader reader=
newbufferedreader
(new
inputstreamreader
(system.in));
system.out.
println
("請輸入傳送資訊:");
string mesage=reader.
readline()
; bytebuffer buffer = bytebuffer.
wrap
(mesage.
getbytes()
);while
(buffer.
hasremaining()
)//讀取響應
bytebuffer responsebuffer = bytebuffer.
allocate
(1024);
while
(channel.
isopen()
&&channel.
read
(responsebuffer)!=-
1)responsebuffer.
flip()
;byte
result=
newbyte
[responsebuffer.
limit()
];responsebuffer.
get(result)
; system.out.
println
("收到服務端資料:"
+new
string
(result));
}}
上述nio開發方式只是了解channel的使用,並不是nio開發方式。服務端讀取資料還是迴圈阻塞的,這時就要用到下乙個核心元件-selector
selector可以監聽channel通道,確定哪些通道準備好讀取和寫入工作,從而實現單個執行緒管理多個通道
//處理讀取事件
if(key.
isreadable()
)if(buffer.
position()
==0)//沒有資料
continue
; buffer.
flip()
;//轉換為讀取模式
byte
message=
newbyte
[buffer.
limit()
];buffer.
get(message)
; system.out.
println
("收到"
+clientchannel.
getremoteaddress()
+"資料:"
+new
string
(message));
//響應
string response=
"response message"
; bytebuffer bytebuffer = bytebuffer.
wrap
(response.
getbytes()
);while
(bytebuffer.
hasremaining()
)}catch
(ioexception e)
}//..其他事件,可提取成乙個個handler}}
uipath三大件介紹
實際上,這一套邏輯就是uipath rpa 平台三大產品的研發思路,也是整個rpa領域一套方 uipath rpa平台包括三大產品 uipath studio uipath robot uipath orchestrator。簡單對應。其中robot是機械人,studio是賦予智慧型的,orches...
UiPath的三大件分別是什麼以及三大件的作用
uipath的三大件分別是什麼以及三大件的作用 uipath rpa平台包括三大產品 uipath studio uipath robot和uipath orchestrator。簡單來說 其中robot是機械人 studio是賦予智慧型的,orchestrator是管理機械人的。具體來說 uipa...
電腦經常宕機 三大件過熱導致
電腦容易宕機,往往是由於硬體過熱造成的。遇到電腦宕機的故障,首先要看看cpu 記憶體 硬碟等三大件是否過熱。1.cpu過熱導致電腦宕機 cpu過熱可導致系統在執行時頻繁宕機。一般在cpu執行比較繁重的任務 比如玩3d遊戲 時,系統會突然出現宕機現象,此時無法正常關閉程式,只能重新啟動。這種宕機的出現...