[英]Sharing objects between multiple threads in a game
編程語言:JAVA / Android
主螺紋(啟動其他踏板)
---(多個屬性)
--- AI線程
--- TouchListener線程
---腳本線程
---渲染線程
屬性的一個例子是由scritping線程指示的actor; 它是由AI線程計算的路線和渲染器改變的3D坐標。
所有線程都不是可以訪問屬性的私有內部類,而是實現Runnable的簡單類
如何在無休止運行的線程之間共享對象(屬性)? 每個線程都必須能夠訪問主線程的所有資源。 (問題不在於如何同步它們,我知道“同步”和鎖的概念)
您可以創建一個類SimulationModel,它由Main thread / class實例化,並由setter或其構造函數提供給其他人。
此類包含所有數據並擁有鎖以保持一致性。
關於數據操作的邏輯也可能在這里發生。
如果您不是要求訪問對象的線程安全,您是否只是詢問如何在其他線程中訪問它們? 如果是這樣,只需通過構造函數將它們傳遞給那些可運行的對象。
一種選擇是在類中創建“屬性” 靜態變量以在全局中使用它們 :
答案的例子:
public class Global { public static int a; public static int b; }
現在你可以通過電話從任何地方訪問a和b
Global.a; Global.b;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.