BREW回调技术分析

原创 2006年05月29日 16:18:00

BREW回调技术分析

李振鹏

版权所有,转载请注明出处

BREW 协作式多任务特性,是通过 C/C++ 的回调函数机制来实现的。其实所谓的回调函数是由系统调用用户的函数,由系统回调的函数,而非用户自行调用,这样用户就可以以根据需要动态改变系统的功能,但是要求用户设计的函数必须遵循系统的函数声明。而从技术上讲的所谓回调函数,其实就是函数指针,可以达到运行时动态调用函数的作用。

BREW 中的回调函数除了使用在事件处理之外,定时器、复杂的数据加密算法和网络数据发送与接收等都使用回调函数技术,回调函数在基于事件处理的系统中还可以避免使用轮询技术导致应用程序陷入长时间的循环等待中。当把需要等待的事件或者是处理的任务作为回调函数注册到系统中,这样当系统接受到指定的消息或者是当系统处理完当前的任务,将会调用已经注册的回调函数。

BREW 程序设计中,特别需要避免的是长时间的单一函数或者方法执行,或者是使用如下的技术:

while(1)

{

       DoSomeThing();

}

这种技术在游戏设计中是经常采用的,一旦进入游戏,将进入用户自己的循环,只从系统得到需要的数据。但是在 BREW 中,一旦陷入这种无限循环而无法及时响应系统消息,将会导致手持设备的强制性重新启动。

因此在 BREW 中需要进行的周期性工作,一般是使用定时器来执行的,在设置定时器的时候,一般会同时初始化一个回调函数,这样在定时器结束后会调用这一个回调函数。

回调函数在 BREW 中的另外一个作用就是对于复杂任务的分解执行,对于十分复杂的任务或者功能,可能执行时间较长,由于这将导致设备的重新启动,因此必须修改算法,把复杂算法分步执行,没有执行完的程序也需要立刻返回,并且把没有完成的工作注册为回调函数,等下次执行调用。

       因此 BREW 的协作式多任务由此可以产生,由于把复杂任务进行了分解,导致每次只执行一部分,并且各个任务都可以得到执行的机会,因此可以产生模拟的多任务效果。但是这里的多任务是协作的,需要由用户在程序设计中进行保证,必须及时出让占用的系统资源,这个是协作式与抢先式多任务的明显区别,虽然这样增加了用户进行程序设计的难度,但是却最大限度的节约了系统资源,最大限度地增加了系统的执行和运行效率。因此在嵌入式程序设计以及 BREW 中被广泛采用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

BREW应用间通信之回调通知

BREW应用间通信之回调通知AEE层 支持通知的概念,通知是一种当其它应用中发生某些差错时可以为该事件注册不同应用来处理的机制。例如,可以将应用注册为在有进入的 SMS 消息时接收通知。这表示只要有进...

BREW应用间通信之回调通知

AEE层 支持通知的概念,通知是一种当其它应用中发生某些差错时可以为该事件注册不同应用来处理的机制。例如,可以将应用注册为在有进入的 SMS 消息时接收通知。这表示只要有进入的 SMS 消息,已注册接...

asp.net:Page类和回调技术

  • 2010-05-26 09:42
  • 263KB
  • 下载

ASP.NET中的回调技术

ASP.NET中的回调技术其实也是通过XMLHttpRequest来实现的,只不过微软做了进一步的封装,让我们在使用的过程中没有看到。 用户注册 ...

Android开发非常实用的技术 - 回调

Android开发非常实用的技术 - 回调明朝朱棣夺位当上皇帝后,他的侄子建文帝朱允炆下落不明,朱棣曾派人秘密寻找,一个是下西洋的郑和,另一个是胡濙?可是直到死前朱棣才得到胡濙带回的答案—–《明朝那些...

Android技术开发之接口回调机制总结

今天讲讲android开发中比较常用的接口回调机制。我自己对接口回调的理解就是:比如点击一个button的时候,如果你给button设置了一个监听器,即调用了方法:btn.setOnClickList...

关于回调技术的原理和作用

初次遇见回调函数 最开始接触回调方法是在Android中。从第一个Hello world程序开始,为了把xml文件中的控件显示到Activity中,我们必须把设置布局文件的代码写到一个叫Oncrea...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)