關於unity中線程使用的小結

2021-08-09 22:08:30 字數 883 閱讀 5498

unity中允許開啟多執行緒,但是由於unity引擎生命週期的關係,unity不允許輔助線程中執行unityapi。

但是可以執行unity中的基本結構(int,vector3,quaternion等),並且unity定義的基本型別的函式可以在分執行緒執行。

於是我們可以定義乙個委託,在主線程中一直查詢委託的情況,而輔助線程將需要進行的邏輯載入到委託中。主線程法線委託非空的時候,執行委託並且將委託清空。

這裡實現乙個簡單的多執行緒輔助指令碼來進行unity中多執行緒的使用。具體類圖如圖:

指令碼如下:

/// /// 執行緒交叉訪問助手類

/// public class threadcrosshelper : monosingleton

public datetime time

}private listdelayedactionlist;

public override void init()

private void update()

private void checkdelayedactionlist()}}

/// /// 執行需要在主線程呼叫的方法 由輔助線程呼叫

///

/// 需要執行的方法

/// 延遲時間

public void executeonmainthread(action action, float time = 0)

;delayedactionlist.add(item);}}

}

在輔助線程中,只需要呼叫executeonmainthread()方法就可以實

Python中線程的使用

併發 多個任務同一時間段進行 並行 多個任務同一時刻進行 執行緒的實現 執行緒模組 python通過兩個標準庫 thread 和threading,提供對執行緒的支援 threading對 thread進行了封裝 因此在實際的使用中我們一般都是使用threading threading模組中提供了t...

Java中線程池的使用

1 threadpoolexecutor類構造器可以設定的引數 核心執行緒數 如果執行緒池中的執行緒數小於核心執行緒數,當新任務提交時,會新建乙個執行緒去處理該任務。最大執行緒數 如果執行緒池中的執行緒數大於等於核心執行緒數,但是小於最大執行緒數,當新任務提交時,會將任務加入任務佇列,如果任務佇列已...

python 中線程池的使用

python中已經有了threading模組,為什麼還需要執行緒池呢,執行緒池又是什麼東西呢?在介紹執行緒同步的訊號量機制的時候,舉得例子是爬蟲的例子,需要控制同時爬取的執行緒數,例子中建立了20個執行緒,而同時只允許3個執行緒在執行,但是20個執行緒都需要建立和銷毀,執行緒的建立是需要消耗系統資源...