`
Mojarra
  • 浏览: 128795 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
文章列表
fn + left / right / up / down 相当于 home/end/page up /page down delete 删除光标前一个字符 fn + delete 删除当前光标后一个字符 command + left / right 把光移到行首、行尾 command + up / down  移至文档头、末尾 command + shift + left / right 在前行选择光标前,后所有的字符, 先按command + shift, 再顺序按left,right选择当前行所有的内容 command + shift + up/down 选择文档开始到当前光标 ...
据Sun自己说,在JDK7中,异步IO比同步IO性能大约有5%~10%的提升,此外,异步IO模式比同步IO模式更健壮。本来本人对Java的网络的性能就是持怀疑态度的,不管怎么说,怀疑归怀疑,在下结论之前,还是要拿出些证据的,废话不多说 ...
在Reactor模式中,虽然可以采用non-blocking I/O模式,使用Selector注册感兴趣的I/O事件和读取感兴趣的I/O事件,I/O调用者向I/O系统请求一个I/O调用时,I/O立即返回给调用者一个反馈,这些反馈无外乎两大类型,请求已经被执行并且有结果返回,或者当前的通道缓存中无数据可用。第二种情况下,为保险起见,编写程序时需要写一个循环只到有数据被读取为止。在I/O系统处理一个I/O请求时,不可能同时处理第二个I/O操作。   异步I/O与同步I/O的最大不同是:当调用者向异步I/O系统请求一个I/O操作的时候,I/O系统自身会调用系统资源启动一个线程去处理该请求,当这个请 ...
接上一回,如果4个工人在装配车轮时,工作间中没有车轮可装配,工人必须等到车轮运送到工作间合适的位置后才可以进行装配车轮的工作。所以,在Worker类中加入一把新的CountDownLatch-----tyreReadyLatch, 让这把锁告诉Worker线程,在轮胎到来之前,必须处于等待状态,假如不等待的话,这个Worker线程会跑出错误,导致的结果是这辆车装配轮胎整个任务失败。所以必须调用 tyreReadyLatch.await(); 这个语句确保Worker线程在等待轮胎的到来。   BlockingQueue来模拟当前工作间中放轮胎的位置。假设能放下4个轮胎。往这个Que ...
    自 JDK1.4 后, Sun 积极推广 New IO ,其中 non-blocking 是新的 socket 编程模式,大幅度提高了服务器端 socket 并发处理能力, Selector, SocketChannel 和 SelectionKey 这三个类配合使用,可以构成一个比较经典的 Reactor 模式。其中 Selector 类只筛选 socket 通讯中感兴趣的事件,如接受连接,读取数据,写数据等。 SocketChannel 是真正的 socket 通讯的实现者,负责读传到服务器端 socket 数据和往客 ...
    自JDK1.4后,Java推出了New/IO(java.nio.*)。在JDK1.4之前,原IO(java.io.*)处理只能是stream的方式 逐个字节逐个字节读取或者写入。流处理方式性能低。而New/IO处理数据时以块为单位,系统的IO开销小,但IO性能高。 New/IO的4个核心概念 Buffer , 处理IO时,数据的载体 Charset , 把unicode字符进行编码成字节码或者把字节码反编成unicode字符 Channel , 连接着能进行IO操作的实体,比如一 ...
Reactor Pattern 是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式,当请求抵达后,服务处理程序使用多路分配策略,然后同步地派发这些请求至相关的请求处理程序。   结构 从结构上说, Reactor 设计模式具有 4 个要素。 资源 ,系统可以提供输出或者被输入 同步事件多路分配器 ,适用事件循环方式阻止所有的资源,当可以在一个无锁资源上启动一个同步操作时,同步事件多路分配器发送这个资源到适配器。 适配器 ,处理请求处理程序注册和注销,从同步事件多路分配器派发资源给相关的请求处理程序。 请求处理 ...
Global site tag (gtag.js) - Google Analytics