3

プログラミング言語: JAVA / Android

スレッド「構造」

メインスレッド (他のスレッドを開始)

---(複数属性)

---AIスレッド

---TouchListener スレッド

---スクリプト スレッド

---スレッドをレンダリング

説明

属性の例は、スクリプト スレッドによって指示されるアクターです。AI スレッドによってルートが計算され、レンダラーによって 3D 座標が変更されます。

すべてのスレッドは、属性にアクセスできるプライベートな内部クラスではなく、Runnable を実装する単純なクラスです。

質問

無限に実行されているスレッド間でオブジェクト (属性) を共有する方法は? すべてのスレッドは、メイン スレッドのすべてのリソースにアクセスできる必要があります。(問題はそれらを同期する方法ではありません。「同期」とロックの概念はすでに知っています)

4

3 に答える 3

1

メインスレッド/クラスによってインスタンス化され、セッターまたはコンストラクターによって他のユーザーに提供されるクラスSimulationModelを作成できます。

このクラスにはすべてのデータが含まれ、一貫性を維持するためにロックを所有します。

データ操作に関するロジックは、ここでも行われる可能性があります。

于 2012-10-30T16:01:34.020 に答える
0

1つのオプションは、クラス内の「属性」静的変数を作成して、それらをグローバルに使用することです。

その答えからの例:

public class Global {

public static int a;
public static int b;
}

これで、電話をかけることでどこからでもaとbにアクセスできます

Global.a;

Global.b;
于 2012-10-30T16:04:43.637 に答える
0

オブジェクトへのアクセスをスレッドセーフにすることについて質問していない場合は、他のスレッドでオブジェクトにアクセスする方法を質問しているだけですか?その場合は、コンストラクターを介してそれらを実行可能なオブジェクトに渡すだけです。

于 2012-10-30T16:00:26.987 に答える