- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 【NIO】dawn中buffer的使用
在网络编程中,buffer是用来把应用程序的数据发送到网络上的中转站,它的重要行不言而喻。提到buffer就不能不说零拷贝什么的,buffer的内存管理什么的,在dawn中,基于directbuffer重新实现了一个可以自动扩展的零拷贝buffer。它的原理就是一个内存块的链表,数据都是在尾端添加,从头部移出,或者在中间获取、设置。所有的位置信息都是直接通过计算获取,所以,保证了各种情况的存取效率
2015-06-30 06:40:08 925 1
原创 [NIO]dawn之Task详解
在上篇文章中,我们设置好了开发环境,接下来,我们将在了解了Task以及Buffer之后,再开始了解网络编程。我们首先来看看Taskpackage zhmt.dawn;import kilim.Pausable;import kilim.Scheduler;import kilim.Task;//继承kilim.Taskpublic class HelloWorld ext
2015-06-28 09:28:39 831
原创 [nio]dawn开发环境配置
为什么dawn需要特殊的开发配置?dawn使用的是kilim协程,在编码结束后需要进行代码织入。试想,如果每次写完程序,运行代码之前都手工运行一次织入程序,是多么蛋疼的一件事情。更糟糕的是,如果你没掌握织入的技巧,可能就失去了在eclipse调试java代码的机会,开发效率会大大降低。所以,我们可以编写一段ant脚本,让eclipse帮我们自动完成织入。步骤我们就拿dawn这个项目做为
2015-06-27 06:35:45 1181
原创 [nio]dawn的基本概念
1.dawn是单线程的:为什么单线程?现实中很多程序都是单线程的,比如redis,memcache,nodejs,mmorpg服务器。。。。。。采用单线程有两大好处,首先,不需要使用锁,逻辑更容易理解,不易出错,其次,减少了切换线程时的调度成本。2.什么是Taskdawn中使用了Task,这其实是kilim中的协程,协程最基本的功能是挂起和恢复,这点和线程是一致的。所有的Tas
2015-06-26 07:58:33 979
原创 【NIO】更简单的nio使用方式
接触nio也有好几年了,最开始摸不着头脑,资料很少,网上的资料都是翻来覆去的抄袭,基本上对于自己的学习没有大帮助。后来遇到了xsocket,觉得用起来还可以,挺方便,api也很简洁。不过这个库的用户不多,后来作者也停止了开发。然后就是mina netty,这些不用说,了解nio的人都知道它们。不过想用好它们也不是那么容易。里面有各种回调,各种future,当你在处理网络事件
2015-06-22 20:47:26 3964 4
aph_hk__thailand__and_india___sprites
2018-05-17
Ibatis 映射文件自动生成器
2008-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人