Memcached主线程中监听socket注册事件和工作线程中连接socket注册事件的回调函数都是event_handler,且event_handler的核心部分都是一个有限状态机:drive_machine。因此接下来将对该状态机具体的业务处理进行深入的剖析。
memcached将每个socket都封装为一个conn结构体,该结构体包含了比如socket的文件描述符sfd、注册事件event、连接状态结构体conn_states,等等诸多信息字段,其中的状态结构:conn_states中包含了该so...
分类:
系统相关 时间:
2015-01-25 15:16:49
阅读次数:
255
作者:zhanhailiang 日期:2015-01-24
什么是有限状态机
一个有限状态机是一个设备,或是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根
据输入进行操作,使其从一个状态变换到另一个状态,或者是促使一个输出或者一种行为的发生。一
个有限状态机在任何瞬间只能处在一个状态。
即有限状态机背后的概念是要把一个对象的行为分解成为易于处理的“块”或状态...
分类:
其他好文 时间:
2015-01-24 21:29:01
阅读次数:
418
虽然我们了解了FSM,并且可以写自己的FSM,但是有更好的工具帮我们完成这个繁琐的工作。SMC(http://smc.sourceforge.net/)就是这样的工具。...
分类:
其他好文 时间:
2015-01-22 20:20:58
阅读次数:
432
有限状态机简称FSM,现在我们创建一个专门的FSM类,负责管理对象(Monkey)的状态。然后Monkey类就实现了行为与状态分离。Monkey类只负责自己的行为,MonkeyFSM作为Monkey的成员,负责状态调度。MonkeyFSM调用状态模式类的方法,状态模式类调用真实对象Monkey的方法。注意本文例子代码只是为了说明问题,并不能真正用于实际当中。其中Monkey与MonkeyFSM互相保存对方的指针,存在循环引用问题。...
分类:
其他好文 时间:
2015-01-22 18:22:03
阅读次数:
258
当我们需要添加了一种新的状态时,不需要去修改长长的条件判断语句了,只需要构造一个新的状态类,修改它的前序和后序状态类就可以了。对于任何一个状态的特有行为,都是独立的,不会混杂在其它状态的代码里。原为决定状态转移逻辑的那个长长的条件语句不见了,而是被分布在State的子类之间。另一方面,从设计的角度看,原先对当前状态的标识,是FSM内部的一个自有变量,状态与状态之间的转换也仅仅是表现为对自有变量的赋值,如果这个自有变量衍生为变量数组时,那极易出现FSM内部状态不一致的情况,而State的引入可以使得这样的情况...
分类:
其他好文 时间:
2015-01-22 15:31:04
阅读次数:
199
基本上所有的软件都是有限状态机(finite-state machine,FSM)。它是一个有向图,由一组节点和一组相应的转移函数组成。通俗点讲,它是一个事件驱动系统的模型,这个模型由有限数目的状态,若干输入和状态与状态之间转换的规则组成。在某一时刻,有一个或一组状态是FSM的当前状态,FSM接收输入事件并根据转换规则,将当前状态转为新的状态。正是由于这三个元素的组合,使得FSM具备了自己的行为特点。在游戏开发中,FSM被用来实现人工智能的决策过程,控制游戏对象的行为。...
分类:
其他好文 时间:
2015-01-22 15:30:20
阅读次数:
262
关注AI的朋友可能都看过赖勇浩翻译的《有限状态机时代终结的10大理由》 ,里面谈到了状态机的诸多弊端。同时在ppt(附上下载地址)中述说了行为树的诸多优点,这里就不在赘述了。更多得是想总结一下自己玩了一阵子行为树后的一些实践体会。
个人体会:
状态机来实现AI更符合我们思维的朴素表达,我想任何一个有经验的coder都能直观得去写一个自己的AI状态机。它用于一些简单的ai其实是没有大问题...
分类:
其他好文 时间:
2014-12-28 15:39:27
阅读次数:
336
程序如何描述指令我们将这个加法指令的有限状态机用Verilog HDL语言进行描述,用节拍jp做为状态标志,用它指出指令Add状态的描述如下: 1 case (jp) 2 3 0: begin 4 5 jp <= 1; 6 7 end 8 9 1: beg...
分类:
其他好文 时间:
2014-12-03 00:01:45
阅读次数:
156
指令有限状态机在CPU设计当中,我们要通过节拍的变动,将每条指令随着节拍的变化一一进行描述。指令的每一个顺序步都是一种状态,任何一条指令的顺序步都是有限的。因此人们将对指令顺序步的描述工程称为有限状态机设计。有限状态机设计最常用的有两种基本形式,一是摩尔型,另一种叫米利型。摩尔型状态机的输出只依赖于...
分类:
其他好文 时间:
2014-12-02 23:51:57
阅读次数:
339
Atitit. 有限状态机 fsm 状态模式
1. 有限状态机 1
2. “状态表”和“状态轮换表” 1
3. 有限状态机概念(状态(State)事件(Event)转换(Transition) 动作(Action) 2
4. 状态机的应用场景 2
4.1. ,“有限状态机”在游戏的人工智能方面是很有用处的。 2
4.2. 用状态机模式消除复杂的 if else 逻辑 2
4.3...
分类:
其他好文 时间:
2014-11-29 11:57:54
阅读次数:
280