原创 引進nio的目的

  之前的 I/O 編程 在 JDK 1.4 之前,自由地使用線程是處理阻塞問題最典型的辦法。但這個解決辦法會產生它自己的問題 ― 即線程開銷,線程開銷同時影響性能和可伸縮性。 用 Java 語言寫的服務器,由於其線程與客戶機之比幾乎

原创 JavaBean 的事件

  JavaBean 的事件   一、事件概述          事件處理是JavaBean體系結構的核心之一。通過事件處理機制,可讓一些組件作爲事件源,發出可被描述環境或其它組件接收的事件。這樣,不

原创 NIO的另類看法---NIO沒有什麼作用

 很簡單 100個請求過來了,每個請求都會有三個事件 ,accept,read writem ,如果只有一個主線程輪訓,每遍歷到一個事件都得線性的去處理他,等處理完了再處理第二個時間,如果有個write的寫操作要寫很多數據,那也得等這個w

原创 NIO存在的問題

 我個人的理解,由於“NIO socket”的實現主體上一般爲一個線性的處理過程。所以只適合做 “請求 —— 響應 ”式的網絡連接。也就是說客戶端必須向服務器發送一個請求, 服務器才能響應給客戶端數據。這種場景比較典型就是web服務器。

原创 事件驅動的單線程模型 VS 多線程模型

 ThreadPerConnection的多線程模型 優點:簡單易用,效率也不錯。在這種模型中,開發者使用同步操作來編寫程序,比如使用阻塞型I/O。使用同步操作的程序能夠隱式地在線程的運行堆棧中維護應用程序的狀態信息和執行歷史,方便程序

原创 Java事件處理模式(小結)

 的事件模式是動態響應系統重要的基礎,在圖形界面領域的事件模式已經有很多文章介紹,但是在服務器端我們會碰到更多的事件模式,這裏本人試圖總結一下: 事件直接驅動模式 事件模式的第一個要求就是性能的要求,需要直接而且快,Command模式是

原创 企業級服務器設計與實現經驗之系統框架(一)

  企業級服務器設計與實現經驗之系統框架(一)       我們將DataServer拆分爲功能服務器和應用服務器,基於如下幾個方面的考慮:       (1)   能更簡單的添加不同類型的應用。在這種拆分的狀態下,如果需要增加一個新的

原创 JDK1.5併發包學習筆記

Jdk1.5中的多線程   主要是在java.util.concurrent包中 ,其中幾個重要的類對比如下        5.0                 1.4 ExecutorService            取代  

原创 貧血模型與充血模型

  貧血模型與充血模型再討論          Martin Fowler很早以前就寫過一篇文章,題目叫"貧血模型"。文章裏面批判貧血的領域模型是不夠優雅、不夠OO的,提倡使用充血的領域模型。在Java世界裏這是一直爭論的話題。到底什

原创 線程模型--讀寫模型

 讀寫模型 讀寫模型是一個稍微複雜一些的模型。 一份共享資源允許多個讀者同時讀取。但是只要有一個寫者在寫這份共享資源,任何其他的讀者和寫者都不能訪問這份共享資源。 讀寫模型實現起來,不僅需要信號量機制,還需要額外的讀者計數和寫者計數