1 package com.service.base; 2 3 public class Actor extends Thread { 4 5 @Override 6 public void run() { 7 8 System.out.println(getName()+"是一个演员!"); 9 10 boolean isBoolCheck = true; 11 int counter = 0 ; 12 while(isBoolCheck){ 13 14 System.out.println(getName()+"演出表演!"+ ++counter); 15 16 if(counter%10 ==0){ 17 18 try { 19 Thread.sleep(1000); 20 } catch (InterruptedException e) { 21 e.printStackTrace(); 22 } 23 24 if(counter==100){ 25 26 isBoolCheck = false; 27 } 28 29 } 30 } 31 System.out.println(getName()+"表演结束!"); 32 } 33 34 35 public static void main(String[] args) { 36 37 Thread actor = new Actor(); 38 actor.setName("男演员"); 39 actor.start(); 40 41 Thread actress = new Thread(new Actress(),"女演员"); 42 actress.start(); 43 } 44 } 45 46 class Actress implements Runnable{ 47 48 @Override 49 public void run() { 50 51 52 53 System.out.println(Thread.currentThread().getName()+"是一个演员!"); 54 55 boolean isBoolCheck = true; 56 int counter = 0 ; 57 while(isBoolCheck){ 58 59 System.out.println(Thread.currentThread().getName()+"演出表演!"+ ++counter); 60 61 if(counter%10 ==0){ 62 63 try { 64 Thread.sleep(1000); 65 } catch (InterruptedException e) { 66 e.printStackTrace(); 67 } 68 69 if(counter==100){ 70 71 isBoolCheck = false; 72 } 73 74 } 75 } 76 System.out.println(Thread.currentThread().getName()+"表演结束!"); 77 } 78 79 }
1 package com.service.base; 2 3 public class ArmyRunnable implements Runnable { 4 5 volatile boolean isBoolCheck = true ; 6 7 @Override 8 public void run() { 9 10 while(isBoolCheck){ 11 12 for (int i = 0; i < 5; i++) { 13 System.out.println(Thread.currentThread().getName()+"进攻对方【"+ i +"】"); 14 // Thread.yield(); 15 } 16 } 17 18 System.out.println(Thread.currentThread().getName()+"结束战斗!"); 19 } 20 21 }
1 package com.service.base; 2 3 public class KeyPersonThread extends Thread { 4 5 @Override 6 public void run() { 7 8 System.out.println(Thread.currentThread().getName()+"开始战斗!"); 9 10 for (int i = 0; i < 10; i++) { 11 System.out.println(Thread.currentThread().getName()+"左突右杀,大战隋军。"); 12 } 13 14 System.out.println(Thread.currentThread().getName()+"结束战斗!"); 15 16 17 } 18 19 }
1 package com.service.base; 2 3 public class Stage extends Thread { 4 5 @Override 6 public void run() { 7 8 System.out.println("欢迎观看隋唐演义!"); 9 try { 10 Thread.sleep(2000); 11 } catch (InterruptedException e1) { 12 e1.printStackTrace(); 13 } 14 System.out.println("大幕徐徐拉开!"); 15 try { 16 Thread.sleep(2000); 17 } catch (InterruptedException e1) { 18 e1.printStackTrace(); 19 } 20 21 ArmyRunnable armySUI = new ArmyRunnable(); 22 ArmyRunnable armyTang = new ArmyRunnable(); 23 24 Thread sui = new Thread(armySUI,"隋军"); 25 Thread tang = new Thread(armyTang,"唐军"); 26 27 sui.start(); 28 tang.start(); 29 30 31 try { 32 Thread.sleep(50); 33 } catch (InterruptedException e) { 34 e.printStackTrace(); 35 } 36 37 System.out.println("正当双方激战正酣,半路杀出个程咬金!"); 38 39 Thread key = new KeyPersonThread(); 40 key.setName("程咬金"); 41 42 System.out.println("程咬金的理想是结束战斗,是百姓安居和业。"); 43 44 armySUI.isBoolCheck = false; 45 armyTang.isBoolCheck = false; 46 47 try { 48 Thread.sleep(2000); 49 } catch (InterruptedException e1) { 50 e1.printStackTrace(); 51 } 52 53 key.start(); 54 55 56 try { 57 key.join(); 58 } catch (InterruptedException e) { 59 e.printStackTrace(); 60 } 61 62 System.out.println("战争结束,程先生实现个人理想,百姓安居乐业!"); 63 try { 64 Thread.sleep(2000); 65 } catch (InterruptedException e1) { 66 e1.printStackTrace(); 67 } 68 System.out.println("谢谢收看隋唐演义,再见!"); 69 } 70 71 public static void main(String[] args) { 72 73 new Stage().start(); 74 75 } 76 }