JDK
iteye_14820
这个作者很懒,什么都没留下…
展开
-
Java NIO小结 (一)
自JDK1.4后,Java推出了New/IO(java.nio.*)。在JDK1.4之前,原IO(java.io.*)处理只能是stream的方式逐个字节逐个字节读取或者写入。流处理方式性能低。而New/IO处理数据时以块为单位,系统的IO开销小,但IO性能高。New/IO的4个核心概念 Buffer, 处理IO时...2011-11-03 18:10:33 · 90 阅读 · 0 评论 -
Java并发编程(一) CountDownLatch
介绍CountDownLatch是JDK5引入的一个新的线程辅助类,用于帮助开发人员”比较精确"的控制线程状态。CountDownLatch这个类内置了一个锁计数器,这个计数器由新建这个类的实例时指定,每调用countDown()方法一次,计数器的数字减一,当计数器为零时,所有的等待线程被释放并执行,否则这些线程是处于等待状态。 这个类在两种典型的场合下可以用得到。 第一种场合...2011-11-15 12:13:30 · 158 阅读 · 0 评论 -
Java并发编程(二) CountDownLatch
接上一回,如果4个工人在装配车轮时,工作间中没有车轮可装配,工人必须等到车轮运送到工作间合适的位置后才可以进行装配车轮的工作。所以,在Worker类中加入一把新的CountDownLatch-----tyreReadyLatch,让这把锁告诉Worker线程,在轮胎到来之前,必须处于等待状态,假如不等待的话,这个Worker线程会跑出错误,导致的结果是这辆车装配轮胎整个任务失败。所以必须调用...2011-11-15 16:22:58 · 103 阅读 · 0 评论 -
Java并发编程(三) CyclicBarrier
在上两回中,用CountDownLatch可以很好的让4个工人等待轮胎运送到工作间合适的位置后再进行轮胎装配工作,装配完4个轮子后,4个工人用减少CountDownLatch计算器数值的方式告诉生产线,这辆汽车的轮子已经装配好。可是,你有没有发现,在我们的程序中,这4个工人只装配了一辆汽车,假如这个4个工人一天只装配一辆汽车,而你是老板的话,你可以解雇这4个工人,工厂不需要生产效率这样低下的劳动者...2011-11-16 17:56:56 · 106 阅读 · 0 评论 -
JDK7网络异步IO
在Reactor模式中,虽然可以采用non-blocking I/O模式,使用Selector注册感兴趣的I/O事件和读取感兴趣的I/O事件,I/O调用者向I/O系统请求一个I/O调用时,I/O立即返回给调用者一个反馈,这些反馈无外乎两大类型,请求已经被执行并且有结果返回,或者当前的通道缓存中无数据可用。第二种情况下,为保险起见,编写程序时需要写一个循环只到有数据被读取为止。在I/O系统处理一个I...2011-11-25 17:56:11 · 146 阅读 · 0 评论 -
Java网络异步IO与同步IO测试
据Sun自己说,在JDK7中,异步IO比同步IO性能大约有5%~10%的提升,此外,异步IO模式比同步IO模式更健壮。本来本人对Java的网络的性能就是持怀疑态度的,不管怎么说,怀疑归怀疑,在下结论之前,还是要拿出些证据的,废话不多说,写几片代码,来测试测试JDK7的异步IO和同步IO的性能。到底表现如何? 基本测试环境:服务器: CPU AMD5000+内存 2G...2011-12-02 17:24:57 · 219 阅读 · 0 评论 -
两亿数据的交集
前几天在论坛里看到一个帖子说百度的一道面试题,两个文件里各约有两亿行数据,每行只有一个数字,问如何求两个文件中数据的交集。 最近对大数据的处理比较感兴趣,所有思考了一下这个问题,对于JVM来说,两亿数据是非常多的,直接用数组来处理,是行不通的,另外,两亿的数据,效率也是一个重要的考量度。本来可以借助Hash的方法来解决这个问题,但因为每行只有一个数据,也就是只有数字0~9, 那么可以采用一...2012-03-26 20:43:27 · 452 阅读 · 0 评论