多线程---模拟接力赛跑

 1 //接力赛跑的线程,实现Runnable
 2 public class MyRunnable implements Runnable{
 3     static int num = 10;
 4     private String thread;
 5     Object lock = new Object();
 6     public void run() {
 7         while(true) {
 8             synchronized (lock) {
 9                 if(num == 0) {
10                     System.out.println("比赛结束!");
11                     break;
12                 }
13                 thread = Thread.currentThread().getName();
14                 System.out.println(thread+"拿到了接力棒!");
15                 num--;            
16                 for(int i =1;i<=10;i++) {
17                     try {
18                         Thread.sleep(10);
19                     } catch (InterruptedException e) {
20                         // TODO Auto-generated catch block
21                         e.printStackTrace();
22                     }
23                     System.out.println(thread+"跑了"+(i*10));
24                 }
25                 return;
26             }
27         }
28     }
29 }
接力赛跑的线程,实现Runnable
 1 //测试类
 2 public class Test {
 3     public static void main(String[] args) throws InterruptedException {
 4         MyRunnable m = new MyRunnable();
 5         Thread thread1 = new Thread(m,"1号选手");
 6         Thread thread2 = new Thread(m,"2号选手");
 7         Thread thread3 = new Thread(m,"3号选手");
 8         Thread thread4 = new Thread(m,"4号选手");
 9         Thread thread5 = new Thread(m,"5号选手");
10         Thread thread6 = new Thread(m,"6号选手");
11         Thread thread7 = new Thread(m,"7号选手");
12         Thread thread8 = new Thread(m,"8号选手");
13         Thread thread9 = new Thread(m,"9号选手");
14         Thread thread10 = new Thread(m,"10号选手");
15         thread1.start();
16         thread2.start();
17         thread3.start();
18         thread4.start();
19         thread5.start();
20         thread6.start();
21         thread7.start();
22         thread8.start();
23         thread9.start();
24         thread10.start();
25         
26     }
27 }
测试类

运行结果:

 

 

 

 

问题:无法实现少于十人的接力赛跑,实现不连续出现的情况!

posted on 2019-08-05 19:44  迪恩9  阅读(1185)  评论(0编辑  收藏  举报