多线程案例-龟兔赛跑
作者:互联网
1.要有赛道距离,我和终点越来越近 2.判断比赛是否结束 3.打印出胜利者 4.龟兔赛跑开始 5.模拟兔子睡觉 6.龟赢了
import java.util.Scanner; //模拟龟兔赛跑 public class Main implements Runnable { //胜利者 private static String winncr; public void run(){ //创建赛道的距离 for (int i=0;i<=100 ;i++ ){ //判断,让兔子休息 if(Thread.currentThread().getName().equals("兔")&&i%10==0){//当线程名称为兔时且每走10步,就让他休息 try { Thread.sleep(10); } catch(InterruptedException e) { e.printStackTrace(); } }else{ //判断比赛是否结束 boolean flag=gameOver(i); if(flag){//flag=true,就结束程序 break; } System.out.println(Thread.currentThread().getName()+"---->跑了"+i+"步"); } } } //判断游戏是否停止 private boolean gameOver(int sleps){//sleps:步数 //判断是否有胜利者 if(winncr!=null){//已经有胜利者 return true; }{ if(sleps>=100){ winncr=Thread.currentThread().getName();//如果步数等于100,就得到这个线程的名字 System.out.println("胜者:"+winncr+"走了"+sleps); return true; } } //如果上面两个判断都没有执行就代表比赛未结束 return false; } public static void main(String[] args) { //创建资源,也相当于是赛道 Main pf=new Main(); //创建两个线程,并命名,然后启动 new Thread(pf,"龟").start(); new Thread(pf,"兔").start();//让兔线程延时 } }
标签:赛道,赛跑,Main,return,龟兔,sleps,winncr,胜利者,多线程 来源: https://www.cnblogs.com/huxingchen/p/16175354.html