随笔分类 -  JAVA

摘要:Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。打开 S... 阅读全文
posted @ 2016-01-26 13:49 开发者里程碑 阅读(262) 评论(0) 推荐(0)
摘要:Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表:为什么使用Selector?Selector的创建向Selector注册通道S... 阅读全文
posted @ 2016-01-26 13:47 开发者里程碑 阅读(241) 评论(0) 推荐(0)
摘要:Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Chann... 阅读全文
posted @ 2016-01-26 13:46 开发者里程碑 阅读(199) 评论(0) 推荐(0)
摘要:在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。transferFrom()FileChannel的transferFrom()方法可以将数据从源通道传输到FileChan... 阅读全文
posted @ 2016-01-26 13:46 开发者里程碑 阅读(273) 评论(0) 推荐(0)
摘要:Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。下面是NIO Buffer相关的话题列表... 阅读全文
posted @ 2016-01-26 13:45 开发者里程碑 阅读(169) 评论(0) 推荐(0)
摘要:Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的... 阅读全文
posted @ 2016-01-26 13:44 开发者里程碑 阅读(184) 评论(0) 推荐(0)
摘要:Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具... 阅读全文
posted @ 2016-01-26 13:43 开发者里程碑 阅读(159) 评论(0) 推荐(0)
摘要:1. 背景1.1. Java线程模型的演进1.1.1. 单线程时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能。1... 阅读全文
posted @ 2016-01-26 13:42 开发者里程碑 阅读(637) 评论(0) 推荐(0)
摘要:一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。Java... 阅读全文
posted @ 2016-01-25 15:44 开发者里程碑 阅读(1747) 评论(0) 推荐(0)
摘要:分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可靠性定理:任何分布式系统只可同时满足二点,没法三者兼顾。忠告:架构师不要将精力浪费在如何设计能满足三... 阅读全文
posted @ 2016-01-25 15:43 开发者里程碑 阅读(176) 评论(0) 推荐(0)
摘要:本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka)。【第二篇的内容大部分为网络资源的整理和汇总,供大家学习总结使用,最后有文章来源】本次分享大纲消息队列概述(见第一篇:大型网站架构系列:分布式消息队列(... 阅读全文
posted @ 2016-01-25 15:31 开发者里程碑 阅读(770) 评论(0) 推荐(0)
摘要:以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务(见第二篇:大型网站架构系列:分布式消息队列(二))常用消息队列(见第二篇:大型网站架构系列:分布式消息队列(二))参考(推荐)... 阅读全文
posted @ 2016-01-25 15:28 开发者里程碑 阅读(498) 评论(0) 推荐(0)