关键词不能为空

位置:爱淘啦励志网 > 励志名言 > 百米赛跑休后语——多线程线程百米赛跑

百米赛跑休后语——多线程线程百米赛跑

作者:车型网
日期:2020-03-01 14:09:59
阅读:

百米赛跑中,多名参赛选手听到号炮声后开始跑,到达终点时结束时间,统计各选手的成绩。 这是线程中必须考虑的两点。 第一,枪响了,这是所有的跑步者(线程)接收到的出发信号,这里关系到裁判员(主线程)如何通知跑步者(子线程)的问题。第二,所有的跑步者完成赛跑,即主线程如何辅助 这是通过CountDownLatch工具类实现的。 更具体地说,请参见以下代码

赛跑运动员

运动会开始!

平均成绩

CountDownLatch类是倒数同步计数器,在程序中启动了两个计数器。 一个是开始计数器begin,指令枪,还有结束计数器,这里有10个,指示每个线程的执行情况,即跑步者是否结束了比赛。 程序逻辑如下:

10所有线程都开始运行,直到运行begin.await ( )时线程被阻止,并等待begin计数为0

主线程调用begin的CountDown方法是begin的计数器为0

10继续执行线程

主线程继续执行以下语句,end计数器不是0,主线程等待

每个线程的执行结束时,将end的计数器减少1个,表示本线程的执行结束。

10线程全部结束,end计数器为0

主线程将继续运行,并打印成绩的平均值

CountDownLatch的角色通过控制一个计数器,指示每个线程在执行完成后运行CountDown,并且自己的执行完成。 这对多个子任务的计算特别有效,例如,异步任务需要分割成10个子任务来执行,主任务需要知道子任务是否完成,在所有子任务完成之后可以进行合并计算,保证1、2主任务的逻辑的正确性 这就是CountDownLatch的作用。

非常感谢你

爱淘啦励志网相关推荐