Netty网络聊天室之心跳检测及断线重连

为了适应恶劣的网络环境,比如网络超时、闪断,客户端进程僵死,Netty需要机制来保证双方的通信能正常工作或者自动恢复。对于服务端来说,当客户端由于某些原因导致无法与服务端通信的,服务端需要主动注销与客户端的连接,减少无效链接的资源消耗。对于客户端来说,当服务进程宕机后进行重启,客户端应该能够定时检测并重新连接服务端。...
阅读(5269) 评论(0)

观察者模式实现事件驱动模型(非GUI事件)

观察者模式是软件设计模式的一种。此种模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并自动更新。该模式通常被用来实现事件驱动处理系统。...
阅读(6820) 评论(0)

游戏服务端线程模型——无锁处理玩家请求

采用线程池组技巧,实现游戏服务端为每一个角色指派固定线程,从而达到无锁处理玩家个人请求。...
阅读(2266) 评论(0)

Netty网络聊天室之基础网关搭建

基本Netty通信框架开发一个模仿QQ的聊天室。使用Netty作为通信网关,使用JavaFX开发客户端界面,使用Spring作为IOC容器,使用MyBatics支持持久化。本文将着重介绍服务端客户端框架的搭建,以及Netty的私有协议栈开发。...
阅读(8838) 评论(7)

备忘录模式实现画图板撤销操作

设计模式给人以抽象的概念,容易让初学者望而却步。其实很多设计模式在开发的过程中,都会不经意地被使用。 本文将通过一个图形界面实现画板的撤销操作,让读者对于设计模式之一的“备忘录模式”有一个直观的感受。...
阅读(973) 评论(0)

Dijkstra算法求解最短路径

Dijkstra算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。...
阅读(508) 评论(0)

不相交集生成随机迷宫

不相交集可以用于解决等价关系。这种数据结构实现起来非常简单,只需要一个一维数组。采用不相交集来演示如何生成随机迷宫,并用图形界面给予展示。...
阅读(922) 评论(0)

递归优化之尾递归

采用递归算法和尾递归算法解决斐波那契问题,并分析造成两者计算时间差距之大的原因。最后,以一个例子,说明函数式语言的尾递归优化...
阅读(1854) 评论(0)

动态规划解决找零钱问题

贪心算法在求解找零钱的某些情况时,无法得到全局最优方案;使用动态规划,则可以保证每次都取得最优方案。...
阅读(5491) 评论(5)

手游服务端代码热部署

采用jdk6的Instrumentation接口,动态改变已加载到JVM的类文件的方法体定义,实现在不重启应用的情况下,修改文件源代码...
阅读(2926) 评论(0)

多线程处理哲学家就餐问题(GUI动态演示)

利用Java的多线程机制,以GUI形式动态演示解决哲学家就餐问题。...
阅读(4289) 评论(1)

线程死锁检测方法

当多条线程以不同的顺序抢占同步资源的时候,就有可能发生死锁。可通过jstack分析堆栈信息或者采用JConsole工具来帮助我们快速找到发生死锁的根源。...
阅读(4707) 评论(2)

获取全部子类或接口的全部实现

模拟EclipseF4快捷键设计,以期获得类的结构层次关系。即,获得一个类的所有子类,或者获得实现某一个接口的所有实现类...
阅读(3704) 评论(0)

线程池学习笔记

在生产环境中,“为每个任务分配一个独立的线程”这种方法存在很多缺陷,尤其是当需要创建大量的线程的情况。线程池的出现使用,使服务器不会无限创建数千个线程来争夺有限的CPU和内存资源。...
阅读(647) 评论(0)

Java模拟抢红包应用

近几年来,春节抢红包热潮席卷全国。公司的游戏也赶上了风潮,玩起了抢红包活动。 关键思想: 1.抢红包涉及多人并发操作,需要做好同步保证多线程运行结果正确。 2.由于同时在线人数大,从性能方面考虑,玩家的发红包请求不必及时响应,而由服务端定时执行发红包队列。 下面是主要的代码和实现逻辑说明 1.创建一个类,表示红包这个实体概念。直接采用原子变量保证增减同步。Java的原子变量是一种...
阅读(2259) 评论(1)
45条 共3页首页 上一页 1 2 3
    个人资料
    • 访问:117951次
    • 积分:1617
    • 等级:
    • 排名:千里之外
    • 原创:41篇
    • 转载:0篇
    • 译文:0篇
    • 评论:39条
    博客专栏
    最新评论