当前位置: 首页 > news >正文

做影视网站推荐哪个服务器特色设计网站推荐

做影视网站推荐哪个服务器,特色设计网站推荐,神马站长平台,网站主体负责人是法人引言 由于项目中有处理大量后台任务并且串行执行的需求#xff0c;特意写了一个简易的任务调度器#xff0c;方便监控每个任务执行和异常情况#xff0c;任务之间互不影响。正如上所述#xff0c;Kotlin中的TaskScheduler类提供了一个强大的解决方案#xff0c;用于使用S…引言 由于项目中有处理大量后台任务并且串行执行的需求特意写了一个简易的任务调度器方便监控每个任务执行和异常情况任务之间互不影响。正如上所述Kotlin中的TaskScheduler类提供了一个强大的解决方案用于使用ScheduledExecutorService异步地排队和执行任务。 使用方法 1.初始化 val taskListener object : TaskScheduler.TaskListener {override fun beforeExecute(task: TaskScheduler.NamedRunnable) {println(开始任务${task.name})}override fun afterExecute(task: TaskScheduler.NamedRunnable, exception: Exception?) {println(完成任务${task.name}异常$exception)} } val scheduler TaskScheduler(taskListener, 5)2.提交任务 scheduler.submit(加载数据) {// 加载数据的代码 } scheduler.submit(处理数据) {// 处理数据的代码 }3.优雅关闭 当所有任务完成后调度器将在指定的超时后自动关闭确保不浪费资源。 完整代码 import java.util.concurrent.* import java.util.concurrent.atomic.AtomicBooleanclass TaskScheduler(private val listener: TaskListener? null, private val timeout: Long 5) {private val taskQueue ConcurrentLinkedQueueNamedRunnable()private val isTaskRunning AtomicBoolean(false)private var executorService: ScheduledExecutorService? nullSynchronizedfun submit(name: String, task: Runnable) {ensureExecutorService()taskQueue.offer(NamedRunnable(name, task))if (isTaskRunning.compareAndSet(false, true)) {executorService?.submit { processTasks() }}}private fun processTasks() {try {while (taskQueue.isNotEmpty()) {val nextTask taskQueue.poll()listener?.beforeExecute(nextTask)var exception: Exception? nulltry {nextTask.run()} catch (e: Exception) {exception e}listener?.afterExecute(nextTask, exception)}} finally {isTaskRunning.set(false)scheduleShutdown()}}private fun ensureExecutorService() {if (executorService null || executorService!!.isShutdown) {executorService Executors.newSingleThreadScheduledExecutor()println(ensureExecutorService newSingleThreadScheduledExecutor)}}private fun scheduleShutdown() {executorService?.schedule({if (taskQueue.isEmpty() isTaskRunning.compareAndSet(false, true)) {executorService?.shutdown()executorService nullprintln(scheduleShutdown shutdown)} else {isTaskRunning.set(false) // 确保新任务可以触发执行器重启}}, timeout, TimeUnit.SECONDS)}interface TaskListener {fun beforeExecute(task: NamedRunnable)fun afterExecute(task: NamedRunnable, exception: Exception?)}class NamedRunnable(val name: String, private val task: Runnable) : Runnable {override fun run() {task.run()}} }最后 简要概括下优缺点 资源自动管理超时自动释放资源任务命名更清晰的了解每个任务执行情况线程安全不用担心多线程添加任务导致顺序紊乱 优点 灵活性允许动态添加任务并根据任务负载需要创建或关闭执行器从而管理执行器的生命周期。 缺点 单线程限制当前实现使用单线程执行器这意味着任务是顺序执行的而不是并行执行。这可能是CPU密集型任务的瓶颈。
http://www.hkea.cn/news/14360896/

相关文章:

  • 河北建设协会官方网站水墨画风格网站
  • 佛山建站公司模板简单商城源码
  • 湘潭做网站 活动磐石网络wordpress 界面设计
  • 做免费互动小游戏的网站it网站开发
  • 专业建公司网站网站建设技术员工资
  • 银川网站建设公司哪家好常德网
  • 江苏企业建设网站公司网站创建方案怎么写
  • 网站ico西安seo排名优化推广价格
  • 公司网站标题优化萧山网页设计
  • 做图片网站赚钱吗如何做网站赚钱
  • 网站查看怎么用个人电脑做网站
  • 网站开发需要用到哪些软件百度快速收录方法
  • 园林网站源代码几款免费流程图制作软件
  • 网站维护目标wordpress爬虫插件
  • 网站cms分站系统资阳自贡网站建设平台
  • 企业网站设计北京做净化行业需要知道的网站
  • 专业网站建设哪家权威做产品目录的网站
  • 门户网站管理流程php是前端还是后端
  • 网站置顶jq番禺网站设计与制作
  • 网站开发5人小组分工2345网址导航手机版
  • 南京做网站工作室广州网页设计公司
  • 做直播网站需要学什么软件有哪些建筑规范app
  • flash做的网站电商平台排名100强
  • 明星个人网站建设需求分析wordpress 在线留言插件
  • 制作医院网站做招聘网站代理商需要多少钱
  • 做企业网站的wordpress get_categories
  • qq空间刷赞推广网站如何开发网站自己做站长
  • 专门做衣服特卖的网站有哪些html炫酷特效代码
  • 怎么用ajax做电商网站如何建设一个个人网站
  • 魏县住房和城乡建设局网站微信公众号推广文案范文