`
QING____
  • 浏览: 2234176 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
一.CompletionService接口提供了可以操作异步任务的功能,其唯一实现的API为ExecutorCompletionService。此API只是可以获取异步任务执行的结果,它不是ExecutorService。 其有5个核心方法: Future<V> poll():同步操作,获取并移除第一已经完成的任务,否则返回null。 Future<V> poll(timeout):同步操作,获取并移除第一个已经完成的任务,阻塞时间为timeout,否则返回null;支持InterruptedException。 Future<V> submit ...
前言:这是一场艰苦的旅行.... 请首先参考:http://shift-alt-ctrl.iteye.com/blog/1839142 一.BlockingDeque阻塞双端队列(线程安全): 注意ArrayDeque和LinkedList仅仅扩展了Deque,是非阻塞类型的双端队列。 BlockingQueue单向队列,其内部基于ReentrantL ...
DatagramChannel是NIO中面向Datagram(数据报)的套接字通道.底层为DatagramSocket + selector的高层封装.此接口仍然实现了SeletableChannel,ScatteringByteChannel, GatheringByteChannel .   可以通过DatagramChannel.open()方法打开获得通道,但此时尚未链接.Datagram ...

NIO-Pile通道详解

Pipe实现单向管道传送的通道对等端.管道是由两端组成:一个可写入的sink通道和一个可读取的source通道(根据数据来源).一旦将某些字节写入接受器通道,就可以按照与写入时完全相同的顺序从源通道中读取这些字节.在另一个线程 ...

NIO-FileChannel详解

一.FileLock(通道文件锁,记录区域锁):表示文件区域锁定标记.FileLock并没有实现lock接口,它仅仅是一个辅助锁操作类.每次通过FileChannel.lock()或者tryLock()获取文件锁.一旦获取锁,那么lock将持续有效,直到被release(),以及JVM退出.可以通过 ...
一.channel.spi底层实现我们首先看看SelectorProvider:SelectorProvider提供了通过底层输出各种NIO实现的接口: public abstract DatagramChannel openDatagramChannel():创建并打开一个DatagramChannel...DatagramChannel.open()方法调用. public abstract SocketChannel openSocketChannel():创建并打开一个SocketChannel,SocketChannel.open()方法调用 public abstract ...
ServerSocketChannel类似于SocketChannel[参考:http://shift-alt-ctrl.iteye.com/blog/1840409],只不过ServerSocketChannel使用server端.ServerSocketChannel是ServerSocket + Selector的高层封装.可以通过socket()方法获得与其关联的ServerSocket.   public abstract SocketChannel open():打开channel.通过底层SelectorProvider.provider().openServerSock ...
一.Lock接口(java.util.concurrent.locks): void lock():获取锁,阻塞方式;如果资源已被其他线程锁定,那么lock将会阻塞直到获取锁,锁阻塞期间不受线程的Interrupt的影响,在获取锁成功后,才会检测线程的interrupt状态,如果interrupt=true,则抛出异常。 unlock():释放锁 tryLock():尝试获取锁,并发环境中"闯入"行为,如果有锁可用,直接获取锁并返回true,否则范围false. lockInterruptibly():尝试获取锁,并支持"中断"请求。与loc ...
一.Atomic包,原子性。事实上,此包中的类可将volatile值、字段和数组元素的概念扩展到那些提供原子性操作的类上,主要方式为 compareAndSet(expectedValue,updateValue), 即CAS思想来确保内存一致性操作。expectedValue即当前值,updateValue为 ...

SocketChannel实例

    博客分类:
  • JAVA
package com.test.socket; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.SocketAddress; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketC ...
一.Socket(套接字):Socket是实现P2P数据通讯的基础. Socket() Socket(String host,int port) Socket(InetAddress,int port) public void connect(SocketAddress address):将套接字连接到远程.如果已经bind或者connect,将抛出异常.链接将阻塞,直到成功或者失败返回. ...

NIO-Pile通道实例

    博客分类:
  • JAVA
package com.test.socket; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.channels.Pipe; import java.nio.channels.Pipe.SinkChannel; import java.nio.channels.Pipe.SourceChannel; import java.nio.charset.Charset; public class PipeTestMain { private static final by ...
MulticastSocket为多播数据套接字,用于发送和接收IP多播包,此类继承自DatagramSocket即"多播"为UDP,但是它具有加入"多播组"的能力. 一.协议介绍: 有两种类型的"一对多"服务:广播(broadcast)和多播(multicast).对与广播 ...

NIO-Selector类详解

Selector本身为抽象类,AbstractSelector是Selector类的抽象实现类,具体的实现类更加底层(SelectorImpl,位于sun.nio.ch);Selector即为"选择器",支撑了NIO的多路复用.Selector不能直接创建,需要通过Selector.open()获得,该方法将使用系统默认的选 ...
SocketChannel为JAVA-NIO中核心类,它实现了SelectableChannel/ScatteringByteChannel/GatheringByteChannel.不过它仍然为一个抽象类.实现层将会有JVM在运行时选择.(参见下文)   SocketChannel只不过是Socket通讯 + Selector机制的抽象层API,底层的通讯仍需要s ...
Global site tag (gtag.js) - Google Analytics