最近看了《游戏编程模式》这本书,里面有一篇空间分区的文章,看了心里痒痒,决定去尝试实现一下。文章后面会给出整个学习参考的链接。 实现的效果如下,我们有一个很大的场景,场景有许许多多的敌人。红色的点代表是玩家,黑色的点代表是敌人。在这样的一个大量敌人的情景下,我们不可能在玩家或敌人寻找身边的攻击对象时 ...
分类:
编程语言 时间:
2017-05-19 23:42:34
阅读次数:
884
为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括 ...
多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁。而锁本身又会带来一些问题和开销。Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线程安全,又能避免引入锁可能带来的问题和开销。 Immutable Object模式简介 多线程环境中 ...
分类:
编程语言 时间:
2017-05-04 01:39:49
阅读次数:
246
停止线程是一个目标简单而实现却不那么简单的任务。首先,Java没有提供直接的API用于停止线程。此外,停止线程时还有一些额外的细节需要考虑,如待停止的线程处于阻塞(等待锁)或者等待状态(等待其它线程)、尚有未处理完的任务等。本文介绍的Two-phase Termination模式提供了一种通用的用于 ...
分类:
编程语言 时间:
2017-05-04 01:26:29
阅读次数:
264
Active Object模式简介 Active Object模式是一种异步编程模式。它通过对方法的调用与方法的执行进行解耦来提高并发性。若以任务的概念来说,Active Object模式的核心则是它允许任务的提交(相当于对异步方法的调用)和任务的执行(相当于异步方法的真正执行)分离。这有点类似于S ...
分类:
编程语言 时间:
2017-05-04 00:12:30
阅读次数:
230
Promise模式简介(转) Promise模式是一种异步编程模式 。它使得我们可以先开始一个任务的执行,并得到一个用于获取该任务执行结果的凭据对象,而不必等待该任务执行完毕就可以继续执行其他操作。等到我们需要该任务的执行结果时,再调用凭据对象的相关方法来获取。这样就避免了不必要的等待,增加了系统的 ...
分类:
编程语言 时间:
2017-05-04 00:07:11
阅读次数:
252
一:准备 1.启动服务 2.启动spark-shell 二:测试检验程序 1.DataFrame的构成 2.结果 三:DataFrame的创建 1.创建SQLContext val sqlContext=new SQLContext(sc) 2.创建DataFrame(两种方式) val df=sq ...
分类:
其他好文 时间:
2017-04-27 23:07:54
阅读次数:
1974
概述: GOF定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 在软件开发特别是DSL开发中常常需要使用一些相对较复杂的业务语言,如果业务语言使用频率足够高,且使用普通的编程模式来实现会导致非常复杂的变化,那么就可以考虑使用解释器模式构建一个解释 ...
分类:
其他好文 时间:
2017-04-27 02:43:35
阅读次数:
212
一、编程模式 面向过程 根据业务实现流程和逻辑,逐步完成 函数式编程 将功能写入函数,方便调用 面向对象 将函数打包,用类封装,实现更强大功能,更符合人对世界的认知过程 二、面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)的实现过程 类是个封装器,是用 ...
分类:
其他好文 时间:
2017-04-16 11:26:43
阅读次数:
132
(一)异步编程的重要性 使用异步编程,方法调用是在后台运行(通常在线程或任务的帮助下),并不会阻塞调用线程。有3中不同的异步编程模式:异步模式、基于事件的异步模式和新增加的基于任务的异步模式(TAP,可利用async和await关键字来实现)。 (二)异步模式 1、C#1的APM 异步编程模型(As ...