-1
class MyRunnable implements Runnable
{
MyRunnable(String name)
{
new Thread(this, name).start();
}
public void run()
{
System.out.println("run() called by " + Thread.currentThread().getName());
System.out.println(Thread.currentThread().getName());
}
}
public class TestClass
{
public static void main(String[] args)
{
System.out.println(Thread.currentThread().getName());
Thread.currentThread().setName("First");
MyRunnable mr = new MyRunnable("MyRunnable");
mr.run();
Thread.currentThread().setName("Second");
mr.run();
}
}
出力はメイン 、 まず、 第二に、 なりますMyRunnableThread.currentThread()。setName()はスレッドの実行メソッドを呼び出しますか?
にThread.currentThread()の呼び出しのsetName( "第一")を行い、なぜ。 run()メソッドを呼び出しますか?
あなたはどう思いますか? – Paul
'新しいスレッド(これ、名前).start();' ctor?ダメダメダメ**。これほど決して、決してこれをしないでください。冗談でもありません。 –
あなたは競合状態に対処しています。 – nhaarman