簡體   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