-2

私はJavaのちょっと新しいもので、3つのクラスがあるマルチスレッドリソースゲームをやっています。

  • 遊び場クラス (リソースが保持されている場所...金、木、食べ物)

  • Animat クラス (必要なときにリソースを使用するアニマットがある場所)

  • Game(Main) クラス (ゲームを実行するため)

アニマットがプレイグラウンドクラスからリソースを削減できるように、スレッドを使用する方法を誰か教えてもらえますか? ...実際には、スレッドを作成してメソッドを実行できるかどうか、およびその方法を知りたいです...

4

1 に答える 1

0

ねじの種類

スレッドは、それを呼び出したスレッドと並行して実行される別の実行呼び出しです。mainすべての Java プログラムはスレッドから始まります。これがドキュメントです。

Thread 型を使用するクラスを作成する

extendsクラスを作成するときに、クラス名とともにキーワードをヘッダーに追加できます。この場合、Thread.

public class A extends Thread

この時点で、メソッドを実装するよう求められますrun。これは、スレッドの存続期間中に実行されるループです。

public void run()
{
    // Some code.
}

あなたの場合

A別のクラスのリソースを使用したい場合は、のコンストラクターを介して、この別のクラスへの参照を渡すのが賢明かもしれません。

public A(Playground playground)
{
    this.playground = playground;
    // Assumes a field of type Playground called playground.
}

run メソッドでは、いくつかの値を減らしたいと思うでしょう。これはシンプルでいいですね。

public void run()
{
    while(gameIsNotOver)
    {
        // Loop assumes some boolean value, gameIsNotOver.
        playground.methodCall();
        // Call some method that will perform the requested calculations on the values.
    }
}

スレッドの使用

メイン クラスで、このスレッドを開始する場合は、メソッドを呼び出さないでください。runこれは非同期実行を開始しません。startメソッドを呼び出す必要があります。これによりスレッドが開始され、値の減少が開始されます。

于 2013-05-12T16:47:30.357 に答える