引言:在unity裡做ai大量模型運算處理,如果在update裡進行處理會阻塞主線程,導致掉幀,這個時候需要單獨開闢乙個執行緒進行資料處理,緩解主線程處理壓力。
應用了網友的乙個處理方法,測試可用,整理一下,備忘。
using system.threading;
//訊息結構
public class message
listmessagelist = new list();
//使用該方法在unity的update裡往外取資料
private void dispatch()
else//補幀
}}//訊息格式
private void handlemessage(message message) }
//開啟執行緒
private void startnewthread()
//開啟執行緒後這裡會壓資料
private void subthread()
); }
}}
總結:思路就是在unity的指令碼 start() 裡開啟乙個執行緒,執行緒中進行while 迴圈,用於處理計算量比較大的ai模型,處理完的結果壓入自己開闢的緩衝區 list,然後在update()裡取出處理結果。 Android UI主線程與子執行緒
乙個android 程式預設情況只有乙個程序,但是乙個程序可以有多個執行緒。其中有乙個ui 執行緒也稱為ui主線程,ui thread在android程式執行的時候就被建立,主要是負責控制ui介面的顯示 更新和控制項互動。所有的android應用程式元件 包括activity service bro...
主線程和子執行緒
子執行緒通過 handlerthread的thread.getlooper 繫結,在主線程的handler的handlermessage中呼叫threadhandler.sendmessagedelay msg,1000 向子執行緒傳送訊息。在子執行緒中通過handler.sendmessagede...
主線程和子執行緒
主線程負責管理由它建立的子執行緒,建立 啟動 掛起 停止等。主線程通過發訊息的方式管理子執行緒,例如,給子執行緒傳送start 訊息,子執行緒啟動,子執行緒執行入口的run 方法。thread有下面兩個構造方法 thread runnable target,string name thread ru...