龟兔赛跑代码实现

Posted 不要忘记我

tags:

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

赛道相当于一个资源,乌龟和兔子相当于两个线程,多线程共用一个资源

package com.demo01;

public class Race implements Runnable
    private static String winner;
    @Override
    public void run()

        for(int i=0;i<=100;i++)
            if(Thread.currentThread().getName()=="兔子" && i%20==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>=100)
                winner=Thread.currentThread().getName();
                System.out.println("winner is"+Thread.currentThread().getName());
            
        
        return false;
    

    public static void main(String[] args)
        Race race=new Race();
        new Thread(race,"兔子").start();
        new Thread(race,"乌龟").start();

    

 

以上是关于龟兔赛跑代码实现的主要内容,如果未能解决你的问题,请参考以下文章

Java并发编程:CallableFuture和FutureTask 实现龟兔赛跑

用JAVA多线程实现龟兔赛跑

Java多线程详解多线程龟兔赛跑实力及实现Callable接口

第70题JAVA高级技术-多线程4(龟兔赛跑-休眠线程)

第70题JAVA高级技术-多线程4(龟兔赛跑-休眠线程)

Java多线程模拟龟兔赛跑