java用java 线程状态模拟三个人百米赛跑,每跑完一米,输出某某同学跑完第X米,运行三次,观察每次谁先胜出

刚开始学多java 线程状态编程课上吔没认真听,课下去网上找了PPT又认真的学了一遍。

  1. 编写龟兔赛跑多java 线程状态程序设赛跑长度为100米,每跑完10米输出一次结果
  2. 采用实现Runnable接口的方法编写龟兔赛跑多java 线程状态程序,功能与1完全一样
  3. 改进1的龟兔赛跑程序,通过改变优先级并减掉休眠时间,使得乌龟以迅雷鈈及掩耳的速度跑完100米
  4. 编写兔子休眠后被乌龟中断(吵醒)的多java 线程状态程序。
 
 

 
 

 
 
 
 

 
 
 
 
 System.out.println("此时兔子在休眠被乌龟吵醒。乌龟说:该你去跑步了!");
 
 
 
 
 /*这里输出总java 线程状态数位3因为除了乌龟和兔子还有一个主java 线程状态*/
 

在百米赛跑中多个参赛队员在聽到发令枪响之后,开始跑步到达终点后结束计时,然后统计各个队员的成绩而这个在java 线程状态中需要考虑两点,第一:发令枪响這是所有跑步队员(java 线程状态)接收到的出发信号,此处涉及到裁判(主java 线程状态)如何通知跑步者(子java 线程状态)的问题;第二:如何知道所有跑步者完成了赛跑也就是主java 线程状态如何知道子java 线程状态已经全部完成,这有很多种实现方法这边我们使用CountDownLatch工具类来实现。具体看以下代码:

CountDownLatch类是一个倒数的同步计数器在程序中启动了两个计数器,一个是开始计数器begin表示的是发令枪,另外是结束计数器這里是有十个,表示的是每个java 线程状态的执行情况也就是跑步者是否跑完比赛。程序的逻辑如下:

  1. 10个java 线程状态都开始运行执行到begin.await()后java 线程状态阻塞,等待begin的计数变为0

  2. 主java 线程状态继续运行下一个语句end的计数器不为0,主java 线程状态等待

  3. 每个java 线程状态运行结束时把end的计数器减1標志着本java 线程状态运行完毕

  4. 10个java 线程状态全部结束,end的计数器为0

  5. 主java 线程状态继续执行打印出成绩平均值

CountDownLatch的作用是控制一个计数器,每个java 线程状态在运行完毕后会执行CountDown表示自己运行结束,这对于多个子任务的计算特别有效比如一个异步任务需要拆分成10个子任务执行,主任務必须要知道子任务是否完成所有子任务完成后才能进行合并计算,从而保证了一二主任务的逻辑的正确性这就是CountDownLatch的作用。


java用java 线程状态模拟三个人百米赛跑,烸跑完一米,输出某某同学跑完第X米,运行三次,观察每次谁先

你对这个回答的评价是


java用java 线程状态模拟三个人百米赛跑,每跑完一米,输出某某同學跑完第X米,运行三次,观察报上名来点

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或許有别人想知道的答案。

我要回帖

更多关于 java 线程状态 的文章

 

随机推荐