私は次のコードを持っていますが、その出力は私が期待したものではありません:
public class ThreadManager {
public static void main(String[] args) {
Resource sharedResource = new Resource();
new Thread(new MyThread(sharedResource)).start();
new Thread(new MyThread(sharedResource)).start();
}
}
class MyThread implements Runnable{
Resource rs = null;
public MyThread(Resource param) {
this.rs = param;
}
@Override
public void run() {
this.rs.add(Thread.currentThread().getName());
System.out.println(this.rs.str);
}
}
class Resource{
StringBuilder str = new StringBuilder();
public void add(String text){
str.append(text);
}
}
出力は:
Thread-0Thread-1
Thread-0Thread-1
しかし、どのように...
ここで、スレッド0が最初に実行される場合、出力は次のようになります。
Thread-0
Thread-0Thread-1
しかし、ここでの問題は、出力の最初の行のスレッド1です。