模型自动缓存、循环调度 game-excutor

GPL
Java
跨平台
2017-01-19
snowcattle
# game-excutor
> 采用Reactor模式,注册readycreate, readyfinish事件到更新服务UpdateService,通过处理后进行模型缓存,然后将消息转化为
dispatchThread消息分配模型需要的create, update, finish的事件进行单线程循环调度
。调度过程使用了系统预置锁模型,来进行多线程唤醒机制,将所有的update循环检测进行多
线程调度,多线程更新服务使用future-listener机制,在完成调度后,根据模型状态,如果模型存活重新将消息转化为update
事件注册到dispatchThread消息分配模型进行循环处理。如果模型死亡将消息转化为readyfinish事件注册到更新服务UpdateServic进行销毁
。这个系统实现了模型自动缓存,多线程异步循环调度模型更新,自动处理模型死亡事件进行销毁。
支持将多个updater绑定到同一个更新线程上,减少线程调度。

## 异步使用例子

> 可参考test下的AsyncEventBusTest.

1. 生成eventbus,注册react事件模型。
3. 生成异步线程服务UpdateExecutorService。
4. 生成异步分配线程LockSupportDisptachThread。
5. 生成更新服务UpdateService
6. 生成eventbus监听器. 注册监听器
8. 生成事件,放入UpdateService更新服务
9. 进行循环处理

## 异步绑定更新线程使用例子

> 可参考asyncevent下的AsyncEventTest.

1. 生成eventbus,注册react事件模型。
3. 生成异步线程服务UpdateEventExcutorService。
4. 生成异步分配线程LockSupportEventDisptachThread。
5. 生成更新服务UpdateService
6. 生成eventbus监听器. 注册监听器
8. 生成事件,放入UpdateService更新服务
9. 进行循环处理

## 同步使用例子

> 可参考test下的SynsEventBusTest.

1. 生成eventbus,注册react事件模型。
2. 生成dispatchThread,生成分配线程.
3. 生成eventbus监听器. 注册监听器
4. 生成事件,放入eventbus
5. 进行循环处理

### 代码最后通过maven部署

- 作者qq 330258845
- QQ群310158485
的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

广播变量,kryo序列化,fastutil

spark广播变量, driver上app, 分多个task,如果不广播变量~假设1000个task,这个map变量有1m,这时候就有1G.的内存占用。同时也会增大网络传输。 使用广播变量后,是每个excutor一个变量。...

2018/04/24 00:06
13
0
Promise实现原理

1.基本概念 Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一 2.Promise使用 语法 new Promise( function(resolve, reject) {...} /* ex...

2018/09/29 17:24
50
0
并发--CyclicBarrier

@Slf4j public class CyclicBarrierExample { private static CyclicBarrier cyclicBarrier = new CyclicBarrier(5); public static void main(String[] args) throws InterruptedException ...

2018/12/06 10:10
8
0
多线程并发最佳实践

1、使用本地局部变量; 2、使用不可变类 3、最小化锁的作用范围; 4、使用Excutor而不是thread; 5、宁可使用同步,也不要使用线程; 6、用blockingqueue实现生产-消费; 7、使用并发集合而不...

08/28 23:14
19
0
mybatis(十)SQL执行流程分析(源码篇)

1. SqlSessionFactory 与 SqlSession.   通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlSession的重要性了吧, 没错,从表面上来看,咱们都是通过SqlSession去执行sql语句(注...

2014/12/20 14:21
44
0
mybatis-sql执行流程源码分析

1. SqlSessionFactory 与 SqlSession.   通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlSession的重要性了吧, 没错,从表面上来看,咱们都是通过SqlSession去执行sql语句(注...

06/23 13:36
62
0
初始Hive

•Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 •本质是将SQL转换为MapReduce程序 •可扩展:Hive可以自由的扩展集群的规模,一般...

2015/02/15 11:29
16
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部