-
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