/**
* 模拟铁人三项
*/
public class PhaserTest { private static Random random = new Random(System.currentTimeMillis()); public static void main(String[] args) { Phaser phaser = new Phaser();
for (int i = ; i < ; i++) {
new Sportsman(i, phaser).start();
}
new InjuredSportsman(, 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());
System.out.println(no + s2);
phaser.arriveAndAwaitAdvance();
}
}

最新文章

  1. [Java]使用HttpClient实现一个简单爬虫,抓取煎蛋妹子图
  2. socket.io,远程控制你的幻灯片
  3. Android webView打不开网页的解决办法
  4. Mysqldump参数大全
  5. LightOJ 1370 - Bi-shoe and Phi-shoe (欧拉函数思想)
  6. clrscr( )用法
  7. poj2186 Popular Cows(强连通)
  8. mysql binaryVInstall
  9. Android学习之旅-android系统服务的启动过程以及分类(90)
  10. Jmeter 性能测试术语
  11. css----transition的应用,产生动画效果。
  12. 11076: 小P的集合 位运算
  13. Linux 删除用户,用户主目录
  14. postcss那些事儿
  15. 【机器学习算法-python实现】採样算法的简单实现
  16. jenkins + nodejs + git 自动化部署前端
  17. HanLP中人名识别分析详解
  18. TCP/IP学习20180625-DNS
  19. FortiGate基本信息
  20. 关于Unity中混合模式、Alpha测试、深度测试、通道遮罩、面剔除的使用----渲染通道通用指令(二)

热门文章

  1. pytest-Mark数据驱动
  2. Pytest 测试框架
  3. JavaScript AJAX PHP
  4. vue中使用axios进行ajax请求数据(跨域配置)
  5. Java中的参数验证(非Spring版)
  6. HTTPS与HTTP区别
  7. 苹果审核之遇到IPV6问题被拒的解决方法
  8. ucoreOS_lab2 实验报告
  9. Django admin简单介绍
  10. devops 下测试组织管理面临的挑战及应对