package pojo; //包名
public class Race implements java.lang.Runnable {
private static String win;
@Override
public void run() {
for (int i = 0; i <= 100; i++) {
if (Thread.currentThread().getName().equals("兔子")&&i%10==0){//给乌龟赢
try {
Thread.sleep(1);//线程睡眠1毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}}
boolean flag=gameover(i);//判断赢没
if (flag) {
break;
}
System.out.println(Thread.currentThread().getName()+"-->跑了"+i+"步");
}
}
public boolean gameover(int step){
if(win!=null){
return true;
}{
if (step==100){//说明赢了
win=Thread.currentThread().getName();//获取名字
System.out.println("winner is "+win);
return true;
}
}
return false;
}
public static void main(String[] args) {
Race obj=new Race();
new Thread(obj,"兔子").start();
new Thread(obj,"乌龟").start();
}
}
java-多线程之龟兔赛跑
最新推荐文章于 2024-10-17 23:16:58 发布
这是一个使用Java实现的兔子与乌龟赛跑的示例,通过多线程展示了线程同步的概念。程序中,兔子每跑10步就会休眠1毫秒,而乌龟则连续跑步。当某一方达到100步时,它将被宣布为赢家。这个例子演示了如何处理线程间的竞争条件和同步问题。
992

被折叠的 条评论
为什么被折叠?



