繁体   English   中英

同时执行功能

[英]Simultaneous Execution of Functions

我正在创建一个应用程序,该应用程序必须执行耗时太长的函数(我们称其为slowfunc() ),这是一个问题,因为我的应用程序正在使用实时视频供稿。 通过每帧运行此功能,会严重影响帧速率。

有没有一种方法可以在不使用线程的情况下在后台运行slowfunc() 我不一定需要它在每个框架上运行,但是每次完成时,我都想检查输出。 我现在唯一能想到的就是将slowfunc()分成几个“微型函数”,每个微型函数将花费大约相等的时间,然后每帧运行一个微型函数。 但是, slowfunc()是一个相对复杂的函数,我认为应该(应该是)有一种简单的方法来执行此操作。

编辑:我不能使用线程,因为此程序最终将在可能不支持线程的小型机器人处理器上使用。 我想我可以使用“合作多任务”。 谢谢你的帮助!

您要同时执行。 实现此目的的两种方法是-:a)多线程-:创建另一个线程以在后台运行。 b)多进程-:创建另一个进程。 通过共享内存模型获取功能所需的所有输入。 创建与原始进程(父进程)的同步机制。 执行此功能。

通常首选使用第一个。 执行速度更快。

第二个保证如果函数崩溃,您的父进程仍然运行。 虽然,这有点无关紧要,但是为什么要让您的孩子(函数)崩溃。 这需要更多的内存。

在线程中运行它,并在计算完成后,使线程进入睡眠状态,直到准备好运行另一个计算为止。 这样,您就不会每次都被线程初始化所困扰。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM