傳統ioe模式:i:ibm的伺服器;o:oracle資料庫;e:emc儲存裝置
乙個io操作其實分成了兩個步驟:發起io請求和實際的io操作。
同步io和非同步io的區別就在於第二個步驟是否阻塞,如果實際的io讀寫阻塞請求程序,那麼就是同步io。
阻塞io和非阻塞io的區別在於第一步,發起io請求是否會被阻塞,如果阻塞直到完成那麼就是傳統的阻塞io,如果不阻塞,那麼就是非阻塞io。
bio方式適用於連線數目比較小且固定的架構,這種方式對伺服器資源要求比較高,併發侷限於應用中,jdk1.4以前的唯一選擇,但程式直觀簡單易理解。
nio方式適用於連線數目多且連線比較短(輕操作)的架構,比如聊天伺服器,併發侷限於應用中,程式設計比較複雜,jdk1.4開始支援。
aio方式使用於連線數目多且連線比較長(重操作)的架構,比如相簿伺服器,充分呼叫os參與併發操作,程式設計比較複雜,jdk7開始支援。
如果你想吃乙份宮保雞丁蓋飯:
同步阻塞:你到飯館點餐,然後在那等著,還要一邊喊:好了沒啊!
同步非阻塞:在飯館點完餐,就去遛狗了。不過溜一會兒,就回飯館喊一聲:好了沒啊!
非同步阻塞:遛狗的時候,接到飯館**,說飯做好了,讓您親自去拿。
非同步非阻塞:飯館打**說,我們知道您的位置,一會給你送過來,安心遛狗就可以了。
併發程式設計-volatile解析:
volatile關鍵字無法保證操作的原子性。通常來說,使用volatile必須具備以下2個條件:
1)對變數的寫操作不依賴於當前值
2)該變數沒有包含在具有其他變數的不變式中
單例模式需要同步雙重檢查(double-check)來解決多執行緒下可能出現的問題。
jquery validate
只對name欄位進行校驗,無法對hidden域進行校驗
toarray方法
都需要帶引數,
而不帶引數的toarray()是不行的,執行時會報classcastexception異常
synchronized(c.class)
synchronized(getclass()) // do not use 這種方式,可能鎖住的實際中的類,並不是需要保護的靜態成員變數所對應的類(有可能是其子類)
雜七雜八筆記
1.string json json.tojsonstring 集合 出現字段無序情況下可以在實體類裡面加上該註解實現指定排序 jsontype orders 2.判斷字串中涉及的非法字元 預設的單例,使用自帶的敏感詞庫 public static sensitivefilterutils defa...
UML雜七雜八
各種分析的角度 目的。1 用例分析,是整個系統層次的功能 使用者的分析 2 靜態分析是對系統實現過程中對類層次的分析,它關注各個實現類的基本性情及各個類之前的關係 關聯 組合 聚合 泛化。3 活動分析是對系統功能業務及業務流和的分析,它是對物件層次的分析。這裡面引入了事件 時候的因素了 4 元件分析...
RTSP雜七雜八
1755埠 1755埠預設情況下用於 microsoft media server 微軟 伺服器,簡稱mms 554埠預設情況下用於 real time streaming protocol 實時流協議,簡稱rtsp 試試下面的方法 開始 控制面板 網路和撥號鏈結 右鍵點選你當前用的網路,點屬性 選...