• 龟兔赛跑(多线程练习题)


    1.龟兔赛跑新规:

    规则:龟兔同时起步,终点为100米,兔子跑步的能力强,乌龟跑步的能力弱(优先级的设置)

    途中:        1.兔子跑到40米的时候,看不见乌龟小睡10毫秒,醒来接着跑
          2.兔子跑到80米的时候,还是看不见乌龟,再等等他,接着跑
          3.兔子跑到100米到达终点

                         4.乌龟从一开始就一直跑,直至到达终点

    代码实现:

    package com.thread;
    //乌龟
    public class Tortoise extends Thread {
        public Tortoise(String name) {
            super(name);
        }
    
        @Override
        public void run() {
            System.out.println("乌龟开始起跑了-----------------");
            for (int i=0;i<=100;i++){
                System.out.println(this.getName()+"跑了"+i+"米");
                if (i==100){
                    System.out.println(this.getName()+"跑完了全程");
                }
            }
        }
    }
    

      

    package com.thread;
    //兔子
    public class Rubbit implements Runnable {
        private String name;
    
        public Rubbit(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        @Override
        public void run() {
            System.out.println("兔子开始起跑了---------------");
            for (int i=0;i<=100;i++){
                System.out.println(this.getName()+"跑了"+i+"米");
                if (i==40){
                    try {
                        System.out.println(this.getName()+"看不见乌龟小睡一会");
                        Thread.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
    
    
                if (i==80){
                    System.out.println(this.getName()+"还是看不见乌龟,等会他");
                    Thread.yield();
                }
    
                if (i==100){
                    System.out.println(this.getName()+"跑完了全程");
                }
            }
        }
    }
    

      

    package com.thread;
    
    public class StartTest {
        public static void main(String[] args) {
            Tortoise tortoise = new Tortoise("乌龟");
            Rubbit rubbit =new Rubbit("兔子");
    
            Thread thread = new Thread(rubbit);
    
            tortoise.setPriority(1);
            thread.setPriority(10);
    
            thread.start();
            tortoise.start();
        }
    }
    

      

    运行结果:

    乌龟开始起跑了-----------------
    兔子开始起跑了---------------
    乌龟跑了0米
    乌龟跑了1米
    乌龟跑了2米
    兔子跑了0米
    兔子跑了1米
    兔子跑了2米
    兔子跑了3米
    兔子跑了4米
    兔子跑了5米
    兔子跑了6米
    兔子跑了7米
    兔子跑了8米
    乌龟跑了3米
    兔子跑了9米
    兔子跑了10米
    兔子跑了11米
    兔子跑了12米
    兔子跑了13米
    兔子跑了14米
    兔子跑了15米
    兔子跑了16米
    兔子跑了17米
    兔子跑了18米
    兔子跑了19米
    兔子跑了20米
    兔子跑了21米
    兔子跑了22米
    兔子跑了23米
    兔子跑了24米
    兔子跑了25米
    兔子跑了26米
    乌龟跑了4米
    兔子跑了27米
    兔子跑了28米
    兔子跑了29米
    兔子跑了30米
    兔子跑了31米
    兔子跑了32米
    兔子跑了33米
    兔子跑了34米
    兔子跑了35米
    兔子跑了36米
    兔子跑了37米
    兔子跑了38米
    兔子跑了39米
    兔子跑了40米
    乌龟跑了5米
    兔子看不见乌龟小睡一会
    乌龟跑了6米
    乌龟跑了7米
    乌龟跑了8米
    乌龟跑了9米
    乌龟跑了10米
    乌龟跑了11米
    乌龟跑了12米
    乌龟跑了13米
    乌龟跑了14米
    乌龟跑了15米
    乌龟跑了16米
    乌龟跑了17米
    乌龟跑了18米
    乌龟跑了19米
    乌龟跑了20米
    乌龟跑了21米
    乌龟跑了22米
    乌龟跑了23米
    乌龟跑了24米
    乌龟跑了25米
    乌龟跑了26米
    乌龟跑了27米
    乌龟跑了28米
    乌龟跑了29米
    乌龟跑了30米
    乌龟跑了31米
    乌龟跑了32米
    乌龟跑了33米
    乌龟跑了34米
    乌龟跑了35米
    乌龟跑了36米
    乌龟跑了37米
    乌龟跑了38米
    乌龟跑了39米
    乌龟跑了40米
    乌龟跑了41米
    乌龟跑了42米
    乌龟跑了43米
    乌龟跑了44米
    乌龟跑了45米
    乌龟跑了46米
    乌龟跑了47米
    乌龟跑了48米
    乌龟跑了49米
    乌龟跑了50米
    乌龟跑了51米
    乌龟跑了52米
    乌龟跑了53米
    乌龟跑了54米
    乌龟跑了55米
    乌龟跑了56米
    乌龟跑了57米
    乌龟跑了58米
    乌龟跑了59米
    乌龟跑了60米
    乌龟跑了61米
    乌龟跑了62米
    乌龟跑了63米
    乌龟跑了64米
    乌龟跑了65米
    乌龟跑了66米
    乌龟跑了67米
    乌龟跑了68米
    乌龟跑了69米
    乌龟跑了70米
    乌龟跑了71米
    乌龟跑了72米
    乌龟跑了73米
    乌龟跑了74米
    乌龟跑了75米
    乌龟跑了76米
    乌龟跑了77米
    乌龟跑了78米
    乌龟跑了79米
    乌龟跑了80米
    乌龟跑了81米
    乌龟跑了82米
    乌龟跑了83米
    乌龟跑了84米
    乌龟跑了85米
    乌龟跑了86米
    乌龟跑了87米
    乌龟跑了88米
    乌龟跑了89米
    乌龟跑了90米
    乌龟跑了91米
    乌龟跑了92米
    乌龟跑了93米
    乌龟跑了94米
    乌龟跑了95米
    乌龟跑了96米
    乌龟跑了97米
    乌龟跑了98米
    乌龟跑了99米
    乌龟跑了100米
    乌龟跑完了全程
    兔子跑了41米
    兔子跑了42米
    兔子跑了43米
    兔子跑了44米
    兔子跑了45米
    兔子跑了46米
    兔子跑了47米
    兔子跑了48米
    兔子跑了49米
    兔子跑了50米
    兔子跑了51米
    兔子跑了52米
    兔子跑了53米
    兔子跑了54米
    兔子跑了55米
    兔子跑了56米
    兔子跑了57米
    兔子跑了58米
    兔子跑了59米
    兔子跑了60米
    兔子跑了61米
    兔子跑了62米
    兔子跑了63米
    兔子跑了64米
    兔子跑了65米
    兔子跑了66米
    兔子跑了67米
    兔子跑了68米
    兔子跑了69米
    兔子跑了70米
    兔子跑了71米
    兔子跑了72米
    兔子跑了73米
    兔子跑了74米
    兔子跑了75米
    兔子跑了76米
    兔子跑了77米
    兔子跑了78米
    兔子跑了79米
    兔子跑了80米
    兔子还是看不见乌龟,等会他
    兔子跑了81米
    兔子跑了82米
    兔子跑了83米
    兔子跑了84米
    兔子跑了85米
    兔子跑了86米
    兔子跑了87米
    兔子跑了88米
    兔子跑了89米
    兔子跑了90米
    兔子跑了91米
    兔子跑了92米
    兔子跑了93米
    兔子跑了94米
    兔子跑了95米
    兔子跑了96米
    兔子跑了97米
    兔子跑了98米
    兔子跑了99米
    兔子跑了100米
    兔子跑完了全程
    
    

      



  • 相关阅读:
    [转]OllyDBG 入门系列(一)-认识OllyDBG
    .net连接Sql时出现"已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: TCP 提供程序, error: 0 指定的网络名不再可用。) "
    FCKeditor 2.0 的设置.修改.使用(转来的!)
    java中判断字符串是否数字的两种方法
    DATEDIFF 函数
    一个简单的数据库操作类
    Ajax多线程
    SQL Server应用程序中的高级SQL注入
    用ASP.NET开发三层架构【转载】
    下拉菜单选择头像
  • 原文地址:https://www.cnblogs.com/zyx110/p/10836540.html
Copyright © 2020-2023  润新知