Java NIO框架Netty教程(十四)-Netty中OIO模型(对比NIO)
OneCoder这个周末搬家,并且新家目前还没有网络,本周的翻译的任务尚未完成,下周一起补上,先上一篇OIO和NIO对比的小研究。 Netty中不光支持了Java中NIO模型,同时也提供了对OIO模型的支持。(New IO vs Old IO)。 首先,在Netty中,切换OIO和NIO两种模式是非常方便的,只需要初始化不同的Channel工程即可。 ServerBootstrap b...
OneCoder这个周末搬家,并且新家目前还没有网络,本周的翻译的任务尚未完成,下周一起补上,先上一篇OIO和NIO对比的小研究。 Netty中不光支持了Java中NIO模型,同时也提供了对OIO模型的支持。(New IO vs Old IO)。 首先,在Netty中,切换OIO和NIO两种模式是非常方便的,只需要初始化不同的Channel工程即可。 ServerBootstrap b...
其实是一个很简单的技巧,就是利用Maven的appassembler-maven-plugin插件,就可以实现自动打包可运行的脚本,还可以跨平台。(Windows/linux) 首先在pom.xml文件的build节点下配置插件: <plugin> <groupId>org.codehaus.mojo</groupId> <art...
在上节(《Java NIO框架Netty教程(十二)-并发访问测试(中)》),我们从各个角度对Netty并发的场景进行了测试。这节,我们将重点关注上节最后提到的问题。在多线程并发访问的情况下,会出现 警告: EXCEPTION, please implement one.coder.netty.chapter.eight.ObjectClientHandler.exceptionC...
今天,我学到了一个在Eclipse中管理引用的小技巧。当然,你可以在单个文件中用Ctrl+shift+O去移除未使用的引用。但是,如果你想移除很多类的无用的引用你该如何去做,比如移除整个包下的类? 很简单,在包浏览(Package Exporler)视图下,右击你想要修改的包,然后依次选择source -> Organize imports,它将自动分析该包下的所有文件,然后移除无用...
今天群里(Java爱好者群:982860385)的朋友,问我该如何看帮助文档,或者说在遇到问题的时候如何解决。希望我能介绍一下我的方法。 这个OneCoder其实没有资格高谈阔论,只能说说个人的习惯和方式。自学和自我解决问题确实是一项非常非常重要的能力,远比你现在所会的知识重要的多的多,因为,你未知的永远的无穷的。 关于API文档 经常有朋友求各种API文档,初学者里最常见的就是要JD...
写在前面:对Netty并发问题的测试和解决完全超出了我的预期,想说的东西越来越多。所以才出现这个中篇,也就是说,一定会有下篇。至于问题点的发现,OneCoder也在努力验证中。 继续并发的问题。在《Java NIO框架Netty教程(十一)-并发访问测试(上)》中,我们测试的其实是一种伪并发的情景。底层实际只有一个Channel在运作,不会出现什么无响应的问题。而实际的并发不是这个意思的,...
OneCoder最近打算坚持每周左右至少翻译一篇技术文章,不管是从学习技术和学习英语的角度,对自己都会是一个提高。水平有限,如果您觉得翻译太过粗糙,甚至错误,还望不吝指出,OneCoder必将虚心接受,努力学习改进。 MySQL是一个”容错性”很强的数据库。这种”容错性”体现在既能作为生产环境中的关系型数据库,又深受那些并不真正回写SQL的各色hacker欢迎。也正式因为他们不是真正会写S...
之前更新了几篇关于JVM研究的文章,其实也是在做本篇文章验证的时候,跑的有点远,呵呵。回归Netty教程,这次要讲的其实是针对一个问题的研究和验证结论。另外,最近工作比较忙,所以可能会分文章更新一些阶段性的成果,而不是全部汇总更新,以免间隔过久。 起因是一个朋友,通过微博私信给我一个问题,大意是说他在用Netty做并发测试的时候,会出现大量的connection refuse信息,问我如何...
在Java虚拟机中,堆(Heap)是可供各条线程共享的运行时内存区域,也是供所有类实例和数组对象分配内存的区域。 Java堆在虚拟机启动的时候就被创建,它存储了被自动内存管理系统(Automatic Storage Management System,也即是常说的”Garbage Collector(垃圾收集器)”)所管理的各种对象,这些受管理的对象无需,也无法显式地被销毁。本规范中所描述...
突兀的出来一个libvirt的教程三,您可能会觉得奇怪,其实这是OneCoder以前写的一个小系列教程,原来发在51cto的博客上,前两篇已经发了过来,考虑到完整性,就把第三篇也发过来。前两篇地址: 《Windows下Libvirt Java API使用教程 (一) 开发环境部署》 《Windows下Libvirt Java API使用教程(二) 接口使用说明》 之前已经介绍...