题目:模拟多人爬山
需求说明:
1、每个线程代表一个人
2、实可设置每人爬山速度
3、每爬完100米显示信息
4、爬到终点时给出相应提示
2.解题思路 为了实现题目需求,我们可以创建两个线程,分别代表年轻人和老年人。每个线程都有自己的爬山速度,并且每爬100米显示信息。当某个线程爬到终点时,给出相应提示。
1、创建线程类GoHill
属性:爬行的速度speed米每秒,爬行的总路程metre米。
构造方法完成属性初始化
2、实现run()方法
线程休眠模拟爬山中的延时
3、实现测试类Test
创建多个线程对象模拟多个人,设置人名、爬100米时长
public class Test { public static void main(String[] args) { GoHill young = new GoHill("年轻人", 20, 300); young.start(); GoHill oldMan = new GoHill("老年人", 10, 300); oldMan.start(); } }
4, 线程类
public class GoHill extends Thread{ private String name; // name 爬山人 private int speed; // speed 爬山人速度 private int metre; // metre 山的高度 public GoHill(String name,int speed,int metre){ this.name = name; this.speed = speed; this.metre = metre; } @Override public void run() { int time = 0; int MetreSum = 0; while (MetreSum < metre){ try { time++; System.out.println("第"+time+"秒"); MetreSum = time * speed; if (MetreSum <= metre){ System.out.println(name+"爬山"+MetreSum+"米"); if (MetreSum % 100 == 0){ System.out.println(name+"爬了"+(MetreSum/100)+"个100米"); } } Thread.sleep(time*100); //线程休眠来实现爬山的间隔 }catch (InterruptedException e){ e.printStackTrace(); } } } }