重複の可能性:
Java String.equals と ==
ウサギとカメのレースをシミュレートするプログラムを書いています! getName() を使用して、スレッドが実行しているオブジェクトを確認し、それに基づいてオブジェクトの値をインクリメントしています。これは私のコードです:
public void run()
{
try{
for(int i=0;i<100;i++)
{
System.out.println(Thread.currentThread().getName());
if(Thread.currentThread().getName() == "HARE")
{
hare++;
System.out.println("hare thread");
Thread.sleep(100);
if(hare == 49)
{
Thread.sleep(2000);
}
}
if(Thread.currentThread().getName() == "TURTLE")
{
turtle++;
Thread.sleep(250);
System.out.println("Turtle Thread");
}
問題は、スレッドの名前を正確に検出したと思っても、if ブロック内に入らないことです。PS私はJavaマルチスレッドが初めてです。コードをご覧いただきありがとうございます。