java多线程问题

java多线程问题,java,multithreading,concurrent-programming,Java,Multithreading,Concurrent Programming,可能重复: 我正在写一个程序来模拟兔子和乌龟赛跑! 我使用getName()查看线程正在执行哪些对象,并在此基础上增加objects值。这是我的代码: public void run() { try{ for(int i=0;i<100;i++) { System.out.println(Thread.currentThread().getName()); if(Thread.currentThread().get

可能重复:

我正在写一个程序来模拟兔子和乌龟赛跑! 我使用getName()查看线程正在执行哪些对象,并在此基础上增加objects值。这是我的代码:

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");

        }
public void run()
{
试一试{
对于(int i=0;i
不能用这种方式比较字符串

Thread.currentThread().getName().equals("HARE");

equals
方法区分大小写。

在比较字符串/对象时,需要使用
.eqauls()
而不是
=

因此,您的代码应该如下所示:

Thread.currentThread().getName().equals("HARE")
=
比较引用是否相等,这意味着两个引用是否指向同一对象。
equals()
方法检查内容是否相等,换句话说,检查字符串是否相同(这是您需要的)

Thread.currentThread().getName().equals("HARE")