zoukankan      html  css  js  c++  java
  • Phaser铁人三项

    /**
     * 模拟铁人三项
     */
    public class PhaserTest {
    
        private static Random random = new Random(System.currentTimeMillis());
    
        public static void main(String[] args) {
    
            Phaser phaser = new Phaser(5);
            for (int i = 1; i < 5; i++) {
                new Sportsman(i, phaser).start();
            }
            new InjuredSportsman(5, phaser).start();
    
    
        }
    
        static class InjuredSportsman extends Thread {
    
            private int no;
            private Phaser phaser;
    
            InjuredSportsman(int no, Phaser phaser) {
                this.no = no;
                this.phaser = phaser;
            }
    
    
            @Override
            public void run() {
                try {
                    sport(no, phaser, " starts   running ", " ends   running ");
                    sport(no, phaser, " starts   bicycle ", " ends   bicycle");
                    System.out.println("I'm injured ,  i will be exit");
                    phaser.arriveAndDeregister();
    
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
            }
        }
    
        static class Sportsman extends Thread {
    
            private int no;
            private Phaser phaser;
    
            Sportsman(int no, Phaser phaser) {
                this.no = no;
                this.phaser = phaser;
            }
    
    
            @Override
            public void run() {
                try {
                    sport(no, phaser, " starts   running ", " ends   running ");
                    sport(no, phaser, " starts   bicycle ", " ends   bicycle");
                    sport(no, phaser, " starts   long jump  ", " ends   long jump ");
    
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
            }
        }
    
        private static void sport(int no, Phaser phaser, String s, String s2) throws InterruptedException {
            System.out.println(no + s);
            Thread.sleep(random.nextInt(5000));
            System.out.println(no + s2);
            phaser.arriveAndAwaitAdvance();
        }
    }
  • 相关阅读:
    校内模拟赛吧 ———— 2019.10.30
    牛客CSP-S提高组赛前集训营1———2019.10.29 18:30 至 22:00
    关于gcd
    洛谷 P1156 垃圾陷阱 题解
    选球游戏 题解———2019.10.19
    小梵同学前进!
    小梵同学 GO!
    先天八卦向后天八卦演进逻辑猜想
    [delphi]在DLL中多线程同步Synchronize卡死问题
    GDI与GDI+性能比较
  • 原文地址:https://www.cnblogs.com/moris5013/p/11898956.html
Copyright © 2011-2022 走看看