首页 > 编程语言 > 详细

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

时间:2019-08-05 20:02:26      阅读:275      评论:0      收藏:0      [点我收藏+]

技术分享图片

技术分享图片
 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 }
测试类

运行结果:

技术分享图片

 

 

 

 

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

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

原文:https://www.cnblogs.com/Dean-0/p/11305128.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!