赞
踩
CyclicBarrier 是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次。若在继续所有参与线程之前更新共享状态,此屏障操作 很有用。
一个大型任务常常分配好多子任务去执行,只有当所有的子任务都执行完成时,才能执行主任务。比如在考试系统的抽题逻辑中,抽题是一个大型任务,包括抽出各种题型,比如:单选题、多选题、翻译题、听力题。抽完所有的题才能继续向下执行。按照咱们以前写代码的方式:先抽取单选题,再抽多选题,再抽翻译题,再抽听力题,假设每个抽题时间都为1s,那么完成一个抽题需要4s的时间,显然对电脑资源的利用率没有达到最优。那么我们如何提高性能呢?假设我们是4核的cpu,我们在抽单选题的时候可以同时抽多选题、翻译题和听力题,这样相当于是并行执行多个任务,那么抽完题需要的时间才是1s。
有了上面的需求,那么下面我们来实现,如何抽题。
抽单选题类:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。