3

私はJavaクラスを持っています

SomeClass implements Runnable

メソッドdisplay()があります。

このクラスのスレッドを作成すると

Thread thread1 = new Thread(new SomeClass());

スレッド インスタンスを使用して display() メソッドを呼び出す方法を教えてください。

4

3 に答える 3

11

を呼び出すことstart()になりthread1ます。

SomeClassrun()メソッドを呼び出す必要があるメソッドをオーバーライドしますdisplay()

このように を呼び出すとstart()、オブジェクトの run メソッドSomeClass()が呼び出され、display() メソッドが実行されます。

例:

public class SomeClass implements Runnable {
    private List yourArrayList;
    public void run() {
        display();
    }

    public void display() {
        //Your display method implementation.
    }
   public List methodToGetArrayList()
   {
    return  yourArrayList;
   }
}

アップデート:

SomeClass sc = new SomeClass()
Thread thread1 = new Thread(sc);
thread1.join();
sc.methodToGetArrayList();

注: 例は概念を説明するためのものであり、構文エラーがある場合があります。

アンドリューがコメントしたように、join() を使用しないと、結果に矛盾が生じる可能性があります。

于 2012-11-13T22:32:09.417 に答える
5

新しいスレッドから表示を呼び出したい場合は、実行メソッド内にある必要があります。

呼び出し元のスレッドから呼び出したい場合は、新しいオブジェクトを作成し、これを新しいスレッドに渡してから、立ち下がりスレッドから表示を呼び出します

SomeClass sc = new SomeClass();
new Thread(sc).start();
sc.display()
于 2012-11-13T22:36:17.143 に答える
3

単純な委任:

public class SomeClass implements Runnable {

    @Override
    public void run() {
        display();
    }

    public void display() {
        //...
    }

}
于 2012-11-13T22:33:35.247 に答える