簡體   English   中英

在游戲中的多個線程之間共享對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM