打印

这是不是就是什么多线程,能不能用C实现

[复制链接]
1987|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
s99060|  楼主 | 2007-2-1 21:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个函数中判断一个条件,若不满足,则跳出这个函数继续下个函数(下个函数也有如此要求),一个轮回,再次进入这个函数,这时要求直接进入刚才条件判断的地方(前面的部分不执行)......

其中的条件包括:外部信号,函数之间的信号以及时间延时等,函数有十几个.

这是不是就是什么多线程(还是什么进程,这个区别不明白了)

请问:是不是一定要用到汇编,还是操作系统什么的,我原来都是写汇编(51)的.

相关帖子

沙发
dengm| | 2007-2-2 08:22 | 只看该作者

把函数搞成状态机

使用特权

评论回复
板凳
将军令| | 2007-2-2 08:31 | 只看该作者

这是单线程!!老大

使用特权

评论回复
地板
emailli| | 2007-2-2 08:31 | 只看该作者

和操作系统有点类似了

这种操作和操作系统的调度有点类似。但是又不是系统调度。

他可以用轮询模式(姑且这么命名)在一定程度上实现时间片的调度算法。

可以想象成所有的任务都是同一个等级的!

只是暂用的时间片大小不同。

你这里至少肯定暂用了一个定时器来做系统时间片。这种模式编程在不使用操作系统的时候是比较好的!

值得借鉴这种架构!

我们书上的程序一般都不会讨论这种架构的!值得你学习!

使用特权

评论回复
5
forthlab| | 2007-2-2 09:34 | 只看该作者

和状态机编程接近了,

和状态机编程接近了,建议整理一下思路,规范编程模式。

使用特权

评论回复
6
s99060|  楼主 | 2007-2-3 11:47 | 只看该作者

继续请教

一:用状态机必须有明确的状态,这对以后增减或修改不利.
二:因每个函数又是线性执行,由于每个函数执行时间远小于需等待的时间,所有函数循环一遍也不会影响每个函数的执行精度.
我在用汇编解决这个问题时没用状态机,也不用定时器来分时间片.只要条件不满足就直接跳出了,继续下个函数,这样编程时就像一直在等待条件满足一样,不用考虑和其他函数的配合.
汇编时这样处理很简单,占用的存储器也最少,而用C不知道编译时用了哪些寄存器(是不是这样?),所以要保存所有的寄存器:(

问题是直接用C好像也办不到吧...

另:请问,到底什么是线程和进程呢. 这里指的函数是C的叫法,也就是个过程,每个过程完成一个独立的任务(控制设备的其中一个部件的运行)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

224

帖子

0

粉丝