摘要: Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了 阅读全文
posted @ 2017-03-12 18:49 打败大魔王 阅读(8851) 评论(0) 推荐(0)
摘要: 首先是channel,是一个双向的全双工的通道,可同时读写,而输入输出流都是单工的,要么读要么写。Channel分为两大类,分别是用于网络数据的SelectableChannel和用于文件操作的FileChannel。 注意:在java NIO库中,所有的数据都是用缓冲区处理,常用的是ByteBuf 阅读全文
posted @ 2017-03-12 18:19 打败大魔王 阅读(3615) 评论(0) 推荐(0)
摘要: 缺点:避免了线程资源耗尽的问题,但是根本上来说,serversocket的accept方法和inputstream的输入流方法都是阻塞型方法。 服务端:加了一个线程池,实现线程复用。客户端不变 客户端: 阅读全文
posted @ 2017-03-12 18:14 打败大魔王 阅读(752) 评论(0) 推荐(0)
摘要: 缺点:一个线程只能处理一个客户端连接 服务端: 事务处理线程: 客户端: 阅读全文
posted @ 2017-03-12 18:10 打败大魔王 阅读(363) 评论(0) 推荐(0)
摘要: 在llimits.h文件中定义了指令的类型。其实就是32个字节。 上节说到变量最终会存入proto的数组k中,返回的索引放在expdesc *var->u.s.info。那么这个索引就是用来生成中间码的指令。如下。 首先讲一下lua指令的构造,如图。简单来说就是把32位字节分割一下,低位的6个字节表 阅读全文
posted @ 2017-03-09 13:39 打败大魔王 阅读(2681) 评论(0) 推荐(0)
摘要: 上节说到表达式的解析问题,exprstate函数用于解析普通的赋值表达式。lua语言支持多变量赋值。本文先从单变量赋值表达式讲起。 对于简单的两个数的求和过程,lua源码是如何解析的呢? 首先,当词法分析获取到第一个token为‘a’的类型是TK_NAME(285),然后是chunk函数,statm 阅读全文
posted @ 2017-03-08 16:33 打败大魔王 阅读(1960) 评论(0) 推荐(0)
摘要: 一步步调试,在lparser.c文件中luaY_parser函数是语法分析的重点函数,词法分析也是在这个过程中调用的。在这个过程中,用到一些数据结构,下面会详细说。 好,不着急,一步一步来看。lua_State ,LexState ,FuncState 是啥玩意呢? lua_state是lua程序运 阅读全文
posted @ 2017-03-07 21:17 打败大魔王 阅读(3934) 评论(1) 推荐(0)
摘要: 研究生即将毕业,答辩完成后,这几天有些时间。开始写一些自己的东西,记录自己的学习历程。 --前言 本着学习和交流的原则,本文的内容仅供参考,而不是权威版本,如有任何问题,欢迎指出。 --声明 跨专业考计算机研究生,至今三年已过,期间有过很多的迷茫,也经历了一些挫折。但是,对编程技术的强烈好奇心驱使我 阅读全文
posted @ 2017-03-07 19:50 打败大魔王 阅读(1763) 评论(0) 推荐(1)