-
Java高并發:靜態頁面生成方案
提升網站性能的方式有很多,例如有效的使用緩存,生成靜態頁面等等。今天要說的就是生成靜態頁面的方式。這個也是我近期一直在搞的一個問題,近期在做使用html + servlet做個人網站,為什么是這2個...
作者:wszsl32106-24 -
讓Java代碼跑得更快
本文簡單介紹一下在寫代碼過程中用到的一些讓JAVA代碼更高效的技巧。1,將一些系統資源放在池中,如數據庫連接,線程等.在standalone的應用中,數據庫連接池可以使用一些開源的連接池實現,如C3P0,pr...
作者:wszsl32106-24 -
Java解讀NIO Socket非阻塞模式
NIO主要原理和適用NIO 有一個主要的類Selector,這個類似一個觀察者,只要我們把需要探知的socketchannel告訴Selector,我們接著做別的事情,當有 事件發生時,他會通知我們,傳回一組SelectionKe...
作者:wszsl32106-12 -
利用NIO建立Socket服務器
傳統的Java 的IO,利用Socket建立服務器,接收客戶端連接,一般都是為每一個連接建立一個線程,如果連接數巨大,那么服務器開銷也將巨大。。NIO的原理,可以參照圖:Socket的Channel在Selector上...
作者:wszsl32106-12 -
用Java.nio.* 進行網絡編程
前言因為打算用java編寫異步通信的server和client程序,筆者便學習使用java.nio開發包,其間遇到一些問題,上網卻發現網上對它的應用描述的不是很多。所以,筆者不惜班門弄斧,做些簡單的討論,...
作者:wszsl32106-12 -
Java NIO的wakeup剖析
java NIO的實現中,有不少細節點非常有學習意義的,就好比下面的這個點:Selector的 wakeup原理是什么?是如何實現的?wakeup()準確來說,應該是Selector的wakeup(),即Selector的喚醒,為什么要...
作者:wszsl32106-12 -
Java NIO類庫關系圖解
下面這張圖給出了nio類庫的各個類之間的關系,這樣你就能知道該怎樣移動和轉換數據了。舉例來說,如果你想把byte數組寫進文件,你得先用ByteBuffer.wrap( )方法把這個byte數組wrap成buffer,再用...
作者:wszsl32106-12 -
淺析Tomcat NIO 配置
Tomcat 6.X實現了JCP的Servlet 2.5和JSP2.1的規范,并且包括其它很多有用的功能,使它成為開發和部署web應用和web服務的堅實平臺。NIO (No-blocking I/O)從JDK 1.4起,NIO API作為一個基于緩沖...
作者:wszsl32106-12 -
Java NIO API詳解
NIO API主要集中在java.nio和它的subpackages中:java.nio定義了Buffer及其數據類型相關的子類。其中被java.nio.channels中的類用來進行IO操作的ByteBuffer的作用非常重要。java.nio.channels定...
作者:wszsl32106-12 -
Java NIO基本使用實例
NIO是Java提供的非阻塞I/O API。非阻塞的意義在于可以使用一個線程對大量的數據連接進行處理,非常適用于"短數據長連接"的應用場景,例如即時通訊軟件。在一個阻塞C/S系統中,服務器要為每一個客戶...
作者:wszsl32106-12 -
Java NIO的介紹及工作原理
針對傳統I/O 工作模式的不足,NIO 工具包提出了基于Buffer(緩沖區)、Channel(通道)、Selector(選擇器)的新模式;Selector(選擇器)、可選擇的Channel(通道)和SelectionKey(選擇鍵)配...
作者:wszsl32106-12 -
Java中關于OOM的場景及解決方法
1、OOM for Heap=>例如:java.lang.OutOfMemoryError: Java heap space分 析此OOM是由于JVM中heap的最大值不滿足需要,將設置heap的最大值調高即可,參數樣例為:-Xmx2G解決方法調高heap的最大...
作者:wszsl32106-12 -
Storm源碼淺析之topology的提交
最近一直在讀twitter開源的這個分布式流計算框架——storm的源碼,還是有必要記錄下一些比較有意思的地方。我按照storm的主要概念進行組織,并且只分析我關注的東西,因此稱之為淺析。...
作者:wszsl32106-12 -
解析從堆到優先隊列的實現
優先隊列,顧名思義,就是一種根據一定優先級存儲和取出數據的隊列。它可以說是隊列和排序的完美結合體,不僅可以存儲數據,還可以將這些數據按照我們設定的規則進行排序。先說說優先隊列的實現...
作者:wszsl32106-12 -
用nio實現Echo服務
今天突然間想用nio實現個Echo服務,程序實現起來實現不算困難,但跑起來后,在Server端的ServerSocket完成accept之后,我的CPU總是跳到100%。嗯,小郁悶,后來,才發現自己在Server端注冊了多余...
作者:wszsl32106-12 -
Java NIO TCP編程
在Java1.4以前,Java的網絡編程是只有阻塞方式的,在Java1.4以及之后,Java提供了非阻塞的網絡編程API.從Java的發展來看,由于Java的快速發展,JVM性能的提升,涉足到服務端應用程序開發也越來越...
作者:wszsl32106-12 -
Java NIO 異步讀取網絡數據
簡單的來說,Java NIO 提供了一種異步非阻塞模型,使得網絡請求都可以并發執行。服務器端采用這種模型,響應速度將大大提高,Apache,Nginx 都是這種模型。本文介紹的是客戶端如何采用這種模型來...
作者:wszsl32106-12 -
Java NIO(異步IO)Socket通信例子
服務器代碼:import java.net.*; import java.nio.*; import java.nio.channels.*; import java.util.*; public class server { ServerSocketChannel ssc ; public void start() { try { Select...
作者:wszsl32106-12 -
影響Java NIO框架性能的因數
最近打算用kilim做一個rpc框架, kilim有自己的nio框架 而在業界有強勁的netty和mina。所以問了一下kilim的作者,他的回答說 因為底層用的都是java nio的api,所以留給nio框架最主要的問題是這2...
作者:wszsl32106-12 -
Java NIO類庫Selector機制解析(下)
五、 迷惑不解 : 為什么要自己消耗資源?令人不解的是為什么我們的Java的New I/O要設計成這個樣子?如果說老的I/O不能多路復用,如下圖所示,要開N多的線程去挨個偵聽每一個Channel (文件描述符...
作者:wszsl32106-12 -
Java的NIO以及線程并發
一、NIO的出現NIO是JDK1.4里面才出現的東東,他給大家帶來的最大好處是異步socket。其它file,pipe暫時就不多談了。在JDK1.4出現之前,如果你需要編寫一個Java服務器,為了實現異步操作,你必須為...
作者:wszsl32106-12 -
基于事件的NIO多線程服務器
JDK1.4的NIO有效解決了原有流式IO存在的線程開銷的問題,在NIO中使用多線程,主要目的已不是為了應對每個客戶端請求而分配獨立的服務線程,而是通過多線程充分使用用多個CPU的處理能力和處理中的...
作者:wszsl32106-12 -
幾種常見的基于Lucene的開源搜索解決方案對比
一、直接使用 Lucene ( http://lucene.apache.org )說明:Lucene 是一個 JAVA 搜索類庫,它本身并不是一個完整的解決方案,需要額外的開發工作。優點:成熟的解決方案,有很多的成功案例。apac...
作者:wszsl32106-12 -
在Java中使用NIO進行網絡編程
在JDK中,有一個非常有意思的庫:NIO(New I/O)。這個庫中有3個重要的類,分別是java.nio.channels中Selector和Channel,以及java.nio中的Buffer。本篇文章我們首先了解一下為什么需要NIO來進行...
作者:wszsl32106-12 -
Java NIO非阻塞服務器示例
以前一直用的是“ervery thread per connection”的服務器端模式,今天試了下NIO非阻塞模式的服務器。 不過java不能實現I/O完成端口模型,這點很遺憾。package com.vista.Server; i...
作者:wszsl32106-12


