zoukankan      html  css  js  c++  java
  • java 多线程 2

     1 package com.imooc.base;
     2 
     3 public class Stage extends Thread {
     4 
     5     public static void main(String[] args) {
     6         new Stage().run();
     7     }
     8     public void run(){
     9         
    10         System.out.println("欢迎观看隋唐演义!");
    11         
    12         try {
    13             Thread.sleep(10000);
    14         } catch (InterruptedException e1) {
    15             e1.printStackTrace();
    16         }
    17         
    18         System.out.println("大幕徐徐拉开");
    19         
    20         ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable();
    21         ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();
    22         
    23         Thread armyOfSuiDynasty = new Thread(armyTaskOfSuiDynasty,"隋军");
    24         Thread armyOfRevolt = new Thread(armyTaskOfRevolt,"农民起义军");
    25         
    26         armyOfSuiDynasty.start();
    27         armyOfRevolt.start();
    28         
    29         try {
    30             Thread.sleep(50);
    31         } catch (InterruptedException e) {
    32             e.printStackTrace();
    33         }
    34         
    35         armyTaskOfSuiDynasty.keepRunning = false;
    36         armyTaskOfRevolt.keepRunning = false;
    37         
    38         try {
    39             armyOfRevolt.join();
    40         } catch (InterruptedException e) {
    41             e.printStackTrace();
    42         }
    43         
    44         System.out.println("正当双方激战正酣,半路杀出了个程咬金");
    45         
    46         Thread mrCheng = new KeyPersonThread();
    47         mrCheng.setName("程咬金");
    48         
    49         System.out.println("程咬金的理想就是结束战争,使百姓安居乐业!");
    50         
    51         armyTaskOfSuiDynasty.keepRunning = false;
    52         armyTaskOfRevolt.keepRunning = false;        
    53         
    54         try {
    55             Thread.sleep(2000);
    56         } catch (InterruptedException e) {
    57             e.printStackTrace();
    58         }
    59         
    60         mrCheng.start();
    61         
    62         try {
    63             mrCheng.join();
    64         } catch (InterruptedException e) {
    65             e.printStackTrace();
    66         }
    67         
    68         System.out.println("战争结束,人民安居乐业,程先生实现了自己的人生梦想!");
    69         System.out.println("谢谢观看");
    70     }
    71 }
     1 package com.imooc.base;
     2 
     3 public class KeyPersonThread extends Thread {
     4     public void run(){
     5         System.out.println(Thread.currentThread().getName()+"开始了战斗!");
     6         
     7         for(int i=0;i<10;i++){
     8             System.out.println(Thread.currentThread().getName()+"左突右杀,攻击隋军。。。");
     9         }
    10         
    11         System.out.println(Thread.currentThread().getName()+"结束了战斗!");
    12     }
    13 }
     1 package com.imooc.base;
     2 
     3 public class ArmyRunnable implements Runnable {
     4     //volatile保证了线程可以正确的读取其他线程写入的值
     5     //可见性 参考JMM,happens-before原则
     6     volatile boolean keepRunning = true;
     7 
     8     public void run() {
     9         while(keepRunning){
    10             for(int i=0;i<5;i++){
    11                 System.out.println(Thread.currentThread().getName()+"进攻方{"+ i +"}");
    12                 
    13                 Thread.yield();
    14             }
    15             
    16         }
    17         System.out.println(Thread.currentThread().getName()+"结束了战斗!");
    18     }
    19 
    20 }
  • 相关阅读:
    cf 535 A. Tavas and Nafas
    codeforces 534 A. Exam
    hust新人赛模拟 20150407 H
    hust新人赛模拟20150407 F
    hust新人赛模拟20150407 C
    hust新人赛模拟20150407 A
    [dp专题]hdu 1160 FatMouse's Speed
    [dp专题]hdu 1260 tickets
    [dp专题]G免费馅饼
    迷宫问题(bfs+记录路径)
  • 原文地址:https://www.cnblogs.com/zhuzhuqwa/p/6337196.html
Copyright © 2011-2022 走看看