多线程模拟龟兔赛跑游戏

Posted 小郑要做干饭人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程模拟龟兔赛跑游戏相关的知识,希望对你有一定的参考价值。

package com.zzx.线程.Runnable;

import com.sun.org.apache.xerces.internal.impl.xpath.XPath;
import com.zzx.线程.Thread.ThreadPractise;

/**
 * @date: 2022/08/15/ 23:27
 * @author: ZhengZiXuan
 * @title: 龟兔赛跑
 * @description:
 *      1.首先来个赛道距离,然后要离终点越来越近
 *      2.判断比赛是否结束
 *      3.打印出胜利者
 *      4.龟兔赛跑开始
 *      5.故事中乌龟是赢的,兔子需要睡觉,所以我们来模拟兔子睡觉
 *      6.终于乌龟赢得了比赛
 */
public class RunnableTest02 implements Runnable

    //胜利者
    private static String winner;

    public void run() 
        for (int i = 0; i <= 1000000; i++) 
            //模拟兔子休息
            if (Thread.currentThread().getName().equals("兔子") && i % 10 ==0)
                try 
                    Thread.sleep(10);
                 catch (InterruptedException e) 
                    e.printStackTrace();
                
            

            //判断比赛是否结束
            boolean flag = gameOver(i);
            if (flag)  //如果为真,表示程序已经执行完了
                break;
                        System.out.println(Thread.currentThread().getName()+"==>跑了"+ i + "步");
        
    

    //判断是否完成比赛
    private boolean gameOver(int steps)
        //判断是否有胜利者
        if (winner != null) //已经存在胜利者了
            return true;
        
            if(steps >= 1000000)
                winner = Thread.currentThread().getName();
                System.out.println("Winner is "+ winner);
            
        
        return false;
    



class test01
    public static void main(String[] args) 
        RunnableTest02 runnableTest02 = new RunnableTest02();
        new Thread(runnableTest02,"兔子").start();
        new Thread(runnableTest02,"乌龟").start();
    


执行结果如下:

以上是关于多线程模拟龟兔赛跑游戏的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程 模拟龟兔赛跑

多线程模拟龟兔赛跑游戏

多线程模拟龟兔赛跑游戏

多线程:多线程的应用(网图下载模拟售票龟兔赛跑)

多线程:多线程的应用(网图下载模拟售票龟兔赛跑)

Java多线程模拟龟兔赛跑