资讯专栏INFORMATION COLUMN

Executor 并发调度模型

LeoHsiun / 234人阅读

摘要:并发调度模型是一种并发调度模式它借助于队列和维护着一个用于调度任务的线程池来处理任务对象的调度。线程池里面处于空闲的线程就会从队列中获取可调用的任务对象,然后在此线程中执行任务单元。

Executor 并发调度模型

Executor是一种并发调度模式:它借助于队列和维护着一个用于调度任务的线程池来处理任务对象的调度。每一个Runnable对象都是一个任务单元,它是可以被Executor调度器调度的最小单元。
当开发者创建一个Runnable对象时,开发者需要把它提交到Executor调度器中,调度器会把它送入到队列中,等待调度。线程池里面处于空闲的线程就会从队列中获取可调用的任务对象,然后在此线程
中执行任务单元。

优点

可以控制并发的数量

不会为每一个线程开辟一个新的线程,避免频繁创建线程的系统开销

伪码描述
创建一个Executor
设置Executor需要存放任务单元的队列
设置Executor用于执行任务单元的线程池,并初始化一批线程等待任务调度

...

创建一个Runnable对象,即任务单元
送入任务单元到Executor调度器中
Executor收到任务然后把其送入到队列中

...

线程池扫描到队列中有任务,取出任务,分配一个空闲的线程调用Runnable的run()方法
任务单元计算完毕,线程重新在线程池中处于空闲对象

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64666.html

相关文章

  • 初读《Java并发编程的艺术》-第十章:Executor框架 -10.1 Executor框架简介

    摘要:线程的启动与销毁都与本地线程同步。操作系统会调度所有线程并将它们分配给可用的。框架的成员主要成员线程池接口接口接口以及工具类。创建单个线程的接口与其实现类用于表示异步计算的结果。参考书籍并发编程的艺术方腾飞魏鹏程晓明著 在java中,直接使用线程来异步的执行任务,线程的每次创建与销毁需要一定的计算机资源开销。每个任务创建一个线程的话,当任务数量多的时候,则对应的创建销毁开销会消耗大量...

    aisuhua 评论0 收藏0
  • 并发编程 - 探索一

    摘要:并发表示在一段时间内有多个动作存在。并发带来的问题在享受并发编程带来的高性能高吞吐量的同时,也会因为并发编程带来一些意想不到弊端。并发过程中多线程之间的切换调度,上下文的保存恢复等都会带来额外的线程切换开销。 0x01 什么是并发 要理解并发首选我们来区分下并发和并行的概念。 并发:表示在一段时间内有多个动作存在。 并行:表示在同一时间点有多个动作同时存在。 例如:此刻我正在写博客,但...

    pcChao 评论0 收藏0
  • Task一个轻量级的分布式任务计算系统

    摘要:已预留扩展,可以实现自己的模块你想好了吗你是否真的需要这样的一个工具,到底是异步还是同步,什么样的才可以称的上任务。异步分布执行虽然可以提高系统吞吐量,但它是在高于一定得计算量请求量的情况下才可以显现出来这一特点。 Task系统设计与使用 Task是一个轻量级的分布式任务计算系统,他可以帮助你快速编写一个可以在集群环境下运行的分布式方法,而这只需要你使用一行代码就可以在你原有的方法上做...

    monw3c 评论0 收藏0
  • Java中的线程池

    摘要:中的线程池运用场景非常广泛,几乎所有的一步或者并发执行程序都可以使用。代码中如果执行了方法,线程池会提前创建并启动所有核心线程。线程池最大数量线程池允许创建的线程最大数量。被称为是可重用固定线程数的线程池。 Java中的线程池运用场景非常广泛,几乎所有的一步或者并发执行程序都可以使用。那么线程池有什么好处呢,以及他的实现原理是怎么样的呢? 使用线程池的好处 在开发过程中,合理的使用线程...

    tomato 评论0 收藏0
  • Java 8 并发教程:线程和执行器

    摘要:在这个示例中我们使用了一个单线程线程池的。在延迟消逝后,任务将会并发执行。这是并发系列教程的第一部分。第一部分线程和执行器第二部分同步和锁第三部分原子操作和 Java 8 并发教程:线程和执行器 原文:Java 8 Concurrency Tutorial: Threads and Executors 译者:BlankKelly 来源:Java8并发教程:Threads和Execut...

    jsdt 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<