林清醒的学习过程: 1. 我们都学习过多线程,我们使用多线程模拟一下龟兔赛跑的情景。加入跑步的距离为1000米,我们使用for循环作为模拟,从1循环到1000,到1000表示跑到了重点。
***优化:判断循环是否结束,循环结束认定位跑到终点,输出提示;例:“乌龟已经跑到了重点,优化:在循环里加入一个休眠的方法,休眠1毫秒。
package work.dome06;
public class Test {
public static void main(String[] args) throws InterruptedException {
MyThread myThread1 = new MyThread("乌龟");
Thread thread1 = new Thread(myThread1);
thread1.start();
MyThread myThread2 = new MyThread("兔子");
Thread thread2 = new Thread(myThread2);
thread2.start();
}
}
package work.dome06;
public class MyThread extends Thread{
public MyThread(String name) {
super(name);
}
@Override
public void run() {
for (int i = 0; i <= 1000; i++) {
if (i==1000){
System.out.println(this.getName() + "已经跑了" + i + "终点");
}else{
System.out.println(this.getName() + "已经跑了" + i + "米");
if (i==50){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}
- 我们都学习过多线程,我们使用模拟一个战争的场景,有三个将军,张飞、关羽、吕布,每人击杀100个小兵
***优化:判断循环是否结束,循环结束认定为完成任务,输出提示;例:“张飞已经完成任务,优化:在循环里加入一个休眠的方法,休眠5秒。
package work.dome07;
public class Test {
public static void main(String[] args) {
Thread thread1 = new Thread(new MyThread());
Thread thread2 = new Thread(new MyThread());
Thread thread3 = new Thread(new MyThread());
thread1.setName("张飞");
thread2.setName("关羽");
thread3.setName("卢布");
thread1.start();
thread2.start();
thread3.start();
}
}
package work.dome07;
public class MyThread implements Runnable{
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
if (i==100){
System.out.println(Thread.currentThread().getName()+"已击杀"+i+"已完成任务");
}else {
System.out.println(Thread.currentThread().getName()+"已击杀"+i+"个士兵");
if (i==50){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
}