多线程与有限状态自动机(FSM)

wangyangcheng 2005-08-15 12:24:47
看到有不少的系统采用自动机来达到多线程的效果,请各位高手在这讨论一下这两种方法各自的特点:

1.采用自动机的有何特点?

2.两者实现起来的复杂度,性价比如何?

3.os里面会不会采用自动机来实现多线程?

谢谢!
...全文
1101 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
fixopen 2005-11-30
  • 打赏
  • 举报
回复
真的,到现在为止我还没搞清楚楼主说的状态机是什么。
bluesen 2005-10-11
  • 打赏
  • 举报
回复
关键要遇到相关的应用,在各种模式下写过程序就明白了。再一次推荐我的文章:
http://www.bluespace.com.cn/koodoo/bbs/showdetail.asp?boardid=a&id=113&page=4

我觉得在其它领域也有参考价值。
fixopen 2005-10-11
  • 打赏
  • 举报
回复
自动机!多线程!
自动机实现的多线程?
什么呀,看不懂,有人能解释解释么。这两个概念怎么搭界了?
lander9999 2005-10-10
  • 打赏
  • 举报
回复
是不是可以用一个时钟中断程序来维护管理所有的线程?时钟中断产生时,根据当前线程状态判断是不是要把他挂起来.或者是继续运行.
deping_chen 2005-10-10
  • 打赏
  • 举报
回复
看到有不少的系统采用自动机来达到多线程的效果
===========================================
没听说呀,只听说用确定性有穷状态自动机(以下简称自动机)实现词法扫描程序,我也曾用它实现类似AutoCAD的命令如line、arc等的处理程序。

用单线程实现多线程的效果,例如一边进行后台处理,同时还能响应用户命令,有如下方法:
方法1:可以在后台处理程序的循环里加入while(PeekMessage(...)){TranslateMessage(...);DispatchMessage(...);}
方法2:利用计时器消息处理后台任务。因为计时器消息的优先级较低,而且重复的计时器消息会被丢弃。

如果真的要在内核单线程中实现多线程,可以使用用户多线程库,这样可以简化程序逻辑。
redleaves 2005-10-08
  • 打赏
  • 举报
回复
CPU本身就是状态机.....
laomai 2005-10-08
  • 打赏
  • 举报
回复
哈哈,才发现原来是矛盾发的帖子。
矛盾,好久没看你上论坛了,最近还好么?
laomai 2005-10-08
  • 打赏
  • 举报
回复
先看看,呵呵
SydPink 2005-10-05
  • 打赏
  • 举报
回复
我怎么觉得这二者没什么像的地方啊?如果在只支持单CPU的系统上,
状态机是可以模拟多线程,因为CPU就一个啊。也只是将线程的挂起和工作也当
成状态的时候,
但是在支持多CPU的系统上,状态机就没有多线程的威力了。
wangyangcheng 2005-10-05
  • 打赏
  • 举报
回复
回复人: SydPink(Miss Syd.Barrett) ( ) 信誉:100 2005-10-05 00:46:00 得分: 0


我怎么觉得这二者没什么像的地方啊?如果在只支持单CPU的系统上,
状态机是可以模拟多线程,因为CPU就一个啊。也只是将线程的挂起和工作也当
成状态的时候,
但是在支持多CPU的系统上,状态机就没有多线程的威力了。


----
我们的系统在小型机上,仍是用的状态机而不是多线程。
性能也不能说比多线程差。
wangyangcheng 2005-10-05
  • 打赏
  • 举报
回复
To:lander9999

----
确 实有在模 拟 多 线 程,至于你提出的这个问题,我还不知道如何解决。



guhanxp 2005-10-04
  • 打赏
  • 举报
回复
"写程序和过日子是一样的"
我喜欢
lander9999 2005-09-22
  • 打赏
  • 举报
回复
是不是用单线程来实现多线程的工作? 那是不是要把以前每个线程的工作拆成一份份的,既一个个状态
然后单线程执行时轮流执行那些分成若干块的工作?如果在某一个"线程"的状态比较费时,那所有的"线程"都停住了?如何强制中止一个"线程"? 就象操作系统一样,不会因为某一个线程比较时,就让所有的线程都停下来?

你要做的只能是共享式"多线程"吧? 呵呵


bluesen 2005-09-21
  • 打赏
  • 举报
回复
看看我以前写的一篇文章,原来是讨论IVR的状态机的,也许可以参考。

把状态机呈现给用户是拙劣的设计--从历史角度再论“状态机”:
http://www.bluespace.com.cn/koodoo/bbs/showdetail.asp?boardid=a&id=113&page=4
sharkhuang 2005-08-21
  • 打赏
  • 举报
回复
状态机还是常用的比如tcp的状态机 进程的状态机
winux0 2005-08-19
  • 打赏
  • 举报
回复
说得那么玄乎,自动机一个基本观点就是状态迁移罢了
这一点正好可以和线程/进程的状态迁移联系起来
无论什么样的线程/进程,他都是一个从死亡到死亡状态迁移过程
"写程序和过日子是一样的"

tb01412 2005-08-19
  • 打赏
  • 举报
回复
我还是第一次听说自动机!!!唉,无知啊!!!!

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧