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