使用Java NIO提高服务端程序的性能

在前面的章节里,我们讨论了Java NIO的基本概念,在这一节里,我们将结合具体的Java Socket编程,讨论使用NIO提高服务端程序的性能的问题。 Java NIO增加了新的SocketChannel、ServerSocketChannel等类来提供对构建高性能的服务端程序的支持。 SocketChannel、ServerSocketChannel能够在非阻塞的模式下工作,它们都是s …… 阅读全文

非阻塞套接字(Nonblocking Sockets) 概述

摘要:文章工具收藏投票评分发表评论复制链接Giuseppe Naccarato 著   张明星 译09/04/2002非阻塞套接字(Nonblocking sockets),自J2SE 1.4版引入,它允许网络通信在应用程序和没有阻塞的进程中使用套接字。在这篇文章中,将详细介绍什么是Nonblocking sockets,怎样工作及其用途。由于JSR …… 阅读全文

Java网络服务器编程(NIO版)

从Java 1.4开始提供的NIO API常用于开发高性能网络服务器,本文演示了如何用这个API开发一个TCP Echo Server。 Java网络服务器编程一文演示了如何使用Java的Socket API编写一个简单的TCP Echo Server。其阻塞式IO的处理方式虽然简单,但每个客户端都需要一个单独的Thread来处理,当服务器需要同时处理大 …… 阅读全文

Java NIO API详解

在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的同步(blocking)API。对于大多数应用来说,这样的API使用很方便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供异步(non-blocking)IO操作的API被引入。本文对其进行深入的介绍。 NIO AP …… 阅读全文

Java线程模型缺陷研究

Java 编程语言的线程模型可能是此语言中最薄弱的部分。它完全不适合实际复杂程序的要求,而且也完全不是面向对象的。本文建议对 Java 语言进行重大修改和补充,以解决这些问题。   Java 语言的线程模型是此语言的一个最难另人满意的部分。尽管 Java 语言本身就支持线程编程是件好事,但是它对线程的语法和类包的支持太少,只能适用于极小型的应用环境。   关于 Java 线程编程的大多数书籍都长篇 …… 阅读全文

多人在线游戏开发心得(服务器端)

bromon原创 版权所有  一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码。关于这个项目,有很多地方值得聊一聊。本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的,我打算只说说一些值得注意的地方。这个项目的一个特别之处是,客户端是手机,用户通过移动网络与服务器通信。和PC相比,手机的处理能力极弱,而且网络流量费用昂贵。因为除了要考 …… 阅读全文