談談jetty8 的io模型

2021-08-26 13:35:52 字數 363 閱讀 7028

幾個重要的概念

見圖幾個重要的執行緒

1) acceptor執行緒

2)selector 執行緒

如果是channelandattachment型別

如果是socketchannel型別(連線事件)

如果是changetask型別

如果是runnable

執行selector.select獲取準備好的selectionkey,遍歷selectionkey

呼叫selector.selectedkeys().clear()

3)worker執行緒

執行緒關係見圖

小結(請求處理流程)

jetty8引數限制2MB解決

網上找了一圈,沒有jetty8解決的。通過分析得知 org.eclipse.jetty.server.handler.contexthandler類的 maxformcontentsize控制引數大小。通過在專案src中重寫該類,修改 maxformcontentsize 屬性。執行時會覆蓋jar包...

談談 IO模型 同步 非同步 阻塞 非阻塞

linux os中,有幾種常見的io模型 程式進行io讀 寫操作通常包括幾個階段 資料準備 資料更新 阻塞式io 程式發起read io請求,核心接受到系統呼叫並開始對磁碟進行讀取資料到核心緩衝區,這一過程程式所在的執行緒是阻塞狀態的。資料準備好,核心需要將資料複製到使用者程序空間,複製過程也是阻塞...

IO模型之一 Unix的五種I O模型

1 阻塞i o blocking io 應用程式呼叫乙個io函式,導致應用程式阻塞,如果資料已經準備好,從核心拷貝到使用者空間,否則一直等待下去。乙個典型的讀操作流程大致如下圖,當使用者程序呼叫recvfrom這個系統呼叫時,kernel就開始了io的第乙個階段 準備資料,就是資料被拷貝到核心緩衝區...