zoukankan      html  css  js  c++  java
  • 多线程---模拟接力赛跑

     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 }
    测试类

    运行结果:

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

  • 相关阅读:
    可能用到的两款Linux工具tmux和tpp
    CCF技术动态第68期(云计算专题)...中国云计算发展概况与趋势...
    产生随机数//NULL大写,rand()在cstdlib,不在cmath
    28个Unix/Linux的命令行神器
    oAuth无痛入门指南
    CRM 客户关系管理和云计算...Salesforce企业级云计算的领导者...
    博客终于开通了
    传递与引用
    Java基础概念
    final、finally和finalize(二)
  • 原文地址:https://www.cnblogs.com/Dean-0/p/11305128.html
Copyright © 2011-2022 走看看