1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > java多线程实现龟兔赛跑

java多线程实现龟兔赛跑

时间:2020-10-12 10:42:57

相关推荐

java多线程实现龟兔赛跑

利用多线程模拟龟兔赛跑,乌龟一直跑,兔子跑十步停一下,任何一个跑完100步即获胜,比赛结束

思路:开启两个线程,一个兔子跑,一个乌龟跑,兔子的线程要设置一个条件,10步一停,然后就是结束条件,一个跑完比赛结束,所以要用在一个方法体中比赛,同时要有一个判定结束的条件。

public class Thread05 implements Runnable{String name=null; //记录获胜者的名字@Overridepublic void run() {for(int i=1;i<=100;i++) { //跑100步结束//当线程名是兔子时,并且跑了10步时,休眠1msif("兔子".equals(Thread.currentThread().getName()) && i%10==0) { try {Thread.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}}//看谁在跑第几步System.out.println(Thread.currentThread().getName()+"在跑第"+i+"步");//调用方法判断比赛结束的依据,只要任意一方到到100,即结束boolean flag=over(i);if(flag) {break;}}}public boolean over(int i) {//名字已经有人了,返回true,线程结束if(name!=null) {return true;}else if(i==100) { //步数到100,设置获胜者名字等于线程名,结束线程name=Thread.currentThread().getName();return true;}return false;}public static void main(String[] args) {//开启两个线程,各自起名Thread05 th=new Thread05();Thread th1=new Thread(th,"兔子"); Thread th2=new Thread(th,"乌龟");th1.start();th2.start();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。