`
newslxw
  • 浏览: 213831 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

NIO实现多线程读取的参考

阅读更多
NIO缺点:
   NIO服务器端是在一个线程下运行,当有多个请求时,将会排队操作,但进行大并发量大数据量读写时,会导致其他请求无法处理,因此考虑将NIO的读写单独用线程处理。

1、NIO 基础
http://tenyears.iteye.com/blog/40489

2、NIO多线程实现
http://www.ibm.com/developerworks/cn/java/l-niosvr/

3、传输对象
   先将对象序列号,然后再客户端反序列化

server端:
Map map = new HashMap();
ByteArrayOutputStream bo = new ByteArrayOutputStream();
try
{
	ObjectOutputStream os = new ObjectOutputStream(bo);
	os.writeObject(map);
}
catch (IOException e)
{
	// TODO Auto-generated catch block
	e.printStackTrace();
}


客户端
//buffer来自于NIO接收的数据
ByteArrayInputStream bi = new ByteArrayInputStream(buffer);
ObjectInputStream oi = new ObjectInputStream(bi);
Map map = (Map)oi.readObject();
分享到:
评论

相关推荐

    java多线程读取文件

    Java多线程读大文件 java多线程写文件:多线程往队列中写入数据

    JAVA NIO 按行读取大文件支持 GB级别-修正版

    设计思想: 每次通过nio读取字节到 fbb中 然后对fbb自己中的内容进行行判断即 10 回车 13 行号 0 文件结束 这样字节的判断,然后 返回行 如果 到达 fbb的结尾 还没有结束,就再通过nio读取一段字节,继续处理。 ...

    基于事件的_NIO_多线程服务器

    本文将详细介绍一种基于事件驱动的NIO多线程服务器的设计思路与实现原理。 #### NIO多线程服务器的关键概念 ##### 1. NIO与多线程结合的意义 - **提高资源利用率**:多线程能够充分利用多核CPU的计算能力,尤其是...

    java使用多线程读取超大文件

    下面是使用java语言实现多线程读取超大文件的代码: 首先,我们需要创建一个读文件工具类,名为`ReadFile`: ```java public class ReadFile extends Observable { private int bufSize = 1024; // 缓冲区大小 ...

    使用多线程的NIO构建简易的多线程java服务器

    为了实现多线程,当接收到新连接时,我们可以创建一个新的线程来处理这个连接的读写操作,避免阻塞主线程。这样,服务器可以同时处理多个客户端连接。 8. **关闭资源**: 当不再需要某个通道或选择器时,记得调用...

    多线程精品资源--Java NIO+多线程实现聊天室.zip

    在这个“多线程精品资源--Java NIO+多线程实现聊天室”的压缩包中,我们可以推测它包含了一套关于如何使用Java NIO和多线程技术来创建一个实时聊天应用的教程或示例代码。 首先,多线程是Java中并行处理的基础。...

    多线程读取DBF文件

    本篇文章将聚焦于如何使用Java的NIO(New Input/Output)包中的RandomAccessFile类来实现多线程读取DBF文件,这在处理大型文件时能显著提升效率。 1. **Java NIO介绍** Java NIO是一个非阻塞I/O模型,提供了与标准...

    NIO_RandomAccessFile_多线程_按行读本地CSV文件(java==> google guava包ListenableFuture)

    NIO_RandomAccessFile_多线程读本地CSV文件(java==> google guava包ListenableFuture) reader里有个main函数,更改文件路径后,直接运行即可

    多线程NIO客户端实例

    ### 多线程NIO客户端实例解析 #### 核心概念与原理 在深入解析这段代码之前,我们先来理解一下几个核心的概念:**多线程**、**NIO(Non-blocking I/O)**以及它们如何协同工作在客户端编程中。 - **多线程**:在...

    java实现多线程文件传输

    8. **性能调优**:合理设置线程池大小、考虑使用NIO(非阻塞I/O)以减少线程等待时间、监控系统资源使用情况,都是优化多线程文件传输性能的关键。 9. **并发工具类**:`CountDownLatch`、`CyclicBarrier`和`...

    java nio 包读取超大数据文件

    - **多线程处理**:结合多线程技术,实现文件读取和数据处理的并行执行,提高整体效率。 综上所述,使用Java NIO处理超大数据文件时,关键是利用好内存映射文件技术和合理的数据读取策略,通过适当的分块和数据...

    java多线程nio服务器

    Java NIO服务器的多线程设计有助于提高服务器的并发性能,特别是在高并发场景下,可以有效地利用系统资源,避免大量线程导致的内存消耗和上下文切换开销。同时,通过选择器的使用,减少了对主线程的占用,使得服务器...

    Java多线程读取大文件

    总之,Java多线程读取大文件是通过文件分区、内存文件映射和NIO技术来提升效率,同时通过多线程协作和合理的资源管理确保程序的稳定性和性能。这种策略尤其适用于需要高效处理大量数据的场景,如日志分析、数据导入...

    基于事件的NIO多线程服务器

    综上所述,基于事件的NIO多线程服务器设计充分利用了Java NIO的优势,通过事件回调和多线程模型实现了高效、可扩展的服务器架构,适合处理大量并发连接。同时,其结构化的事件处理方式增强了代码的可读性和可维护性...

    基于nio实现的多文件上传源码

    本主题“基于nio实现的多文件上传源码”探讨的是如何利用Java NIO来实现高效的多文件上传功能,尤其对于小文件数量较大的情况。 首先,理解NIO的基本概念是必要的。NIO中的“非阻塞”意味着当数据不可用时,读写...

    Java NIO实现多个客户端之间的消息互发,客户端与服务器完整代码

    Java NIO(Non-blocking Input/...在实际开发中,Java NIO的使用需要对多线程、网络编程以及NIO API有深入的理解。通过这种方式构建的系统可以高效地处理大量并发连接,非常适合于聊天、游戏等实时性要求高的应用场景。

    基于时间的NIO多线程服务器

    ### 基于时间的NIO多线程服务器——深入解析与关键技术点 #### 引言 在服务器端编程领域,随着互联网应用的不断发展,如何高效处理大量的并发连接成为了一个重要议题。Java NIO(非阻塞I/O)作为一种先进的I/O处理...

    NIO实现邮件接收原码

    以上是使用NIO实现邮件接收的基本原理和步骤,实际开发中还需要考虑性能优化、错误处理、多线程等问题。在"assignment2"这个压缩包文件中,可能包含了实现这一功能的具体代码,你可以参考学习,理解其中的逻辑和技巧...

    java对大数据量文件内容的多线程读取和排序.zip_大数据 java_文件读取

    本文将详细介绍如何在Java中实现对大数据量文件内容的多线程读取和排序。 首先,理解多线程的概念是至关重要的。线程是程序执行的最小单元,每个线程都有自己的程序计数器、虚拟机栈、本地方法栈和一部分堆内存。...

    多线程随机读取文件

    3. **Channel与Selector**:Java NIO提供了`FileChannel`,配合`Selector`,可以实现高效的多线程并发读写。每个线程都可以注册到Selector,当文件通道准备好读写时,Selector会通知相应的线程。 三、优化策略 1. ...

Global site tag (gtag.js) - Google Analytics