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

php网站做分享到朋友圈网站设置搜索框是什么知识点

php网站做分享到朋友圈,网站设置搜索框是什么知识点,建筑公司网站起名,wordpress问卷调查boundedElastic 调度器专门用于处理无法避免的阻塞代码,而 single 和 parallel 调度器则不支持阻塞操作。因此,如果在 single 或 parallel 调度器上使用 Reactor 的阻塞 API(如 block()、blockFirst()、blockLast())或通过 toIter…

boundedElastic 调度器专门用于处理无法避免的阻塞代码,而 singleparallel 调度器则不支持阻塞操作。因此,如果在 singleparallel 调度器上使用 Reactor 的阻塞 API(如 block()blockFirst()blockLast())或通过 toIterable()toStream() 进行迭代,会抛出 IllegalStateException 异常
自定义调度器也可以通过实现 NonBlocking 标记接口来标记为“仅适用于非阻塞操作”


1. boundedElasticsingle/parallel 的区别

  • boundedElastic

    • 是一个有界弹性线程池,适合处理阻塞 I/O 操作
    • 它允许任务排队并在线程可用时重新调度,避免过多线程消耗资源。
    • 适用于遗留的阻塞代码,但不是必须的。
  • singleparallel

    • single:提供一个可重用的线程,适合低延迟任务。
    • parallel:提供一个固定大小的线程池(通常等于 CPU 核心数),适合 CPU 密集型任务。
    • 但它们不支持阻塞操作,因为阻塞操作会阻塞线程,影响其他任务的执行。

结论boundedElastic 是唯一支持阻塞操作的调度器,而 singleparallel 不支持。


2. 为什么在 single/parallel 上使用阻塞 API 会抛出异常?

  • 阻塞操作会阻塞线程,而 singleparallel 调度器是为非阻塞操作设计的。
  • 如果在这些调度器上执行阻塞操作,会导致线程被阻塞,其他任务无法执行。
  • 例如,使用 block()blockFirst()blockLast()toIterable()toStream() 进行迭代,会强制阻塞线程,违反了响应式流的非阻塞原则。
  • Reactor 会检测到这种行为,并抛出 IllegalStateException

示例

Mono.just("Hello").subscribeOn(Schedulers.single()) // 报错.block(); // 抛出 IllegalStateException

3. 如何标记自定义调度器为“仅适用于非阻塞操作”?

  • NonBlocking 标记接口:Reactor 提供了一个 NonBlocking 标记接口,用于标识哪些线程可以安全地执行非阻塞操作。
  • 自定义线程:你可以创建一个线程,并实现 NonBlocking 接口,这样该线程就被标记为“仅适用于非阻塞操作”。
  • 作用:确保在这些线程上不会执行阻塞操作,从而避免 IllegalStateException

示例

Thread thread = new Thread(() -> {// 非阻塞操作
});
thread.setDaemon(true);
thread.start();

4. 总结

调度器是否支持阻塞操作用途是否抛出异常(在阻塞操作下)
boundedElastic阻塞 I/O 操作❌(不抛出异常)
single低延迟任务✅(抛出异常)
parallelCPU 密集型任务✅(抛出异常)

关键点

  • boundedElastic 是唯一支持阻塞操作的调度器。
  • singleparallel 不支持阻塞操作,否则会抛出异常。
  • 自定义调度器可以通过实现 NonBlocking 接口来标记为“仅适用于非阻塞操作”。

5. 相关引用

  • Schedulers.boundedElastic() 是为阻塞 I/O 操作设计的,而 singleparallel 不是 。
  • singleparallel 调度器上使用 block()blockFirst()blockLast() 会抛出 IllegalStateException
  • 自定义调度器可以通过实现 NonBlocking 标记接口来标记为“仅适用于非阻塞操作” 。
http://www.dtcms.com/a/407626.html

相关文章:

  • 免费psd图片素材网站ui设计培训大概多少钱
  • 《C++程序设计》笔记p6
  • 安徽同济建设集团网站公司搭建网站模板
  • 【读书笔记】《大国大成》
  • C++笔记(基础)引用 inline内联函数
  • 焦作网站建设公司哪家好dz整站网站建设
  • 建站快车品牌北京网站建设兴田德润放心
  • cuda编程笔记(22)-- NVIDIA Triton Inference Server
  • 怎么知道网站是否被百度收录软件开发工具有哪些
  • 伦理治理进入程序化攻坚阶段
  • 经典网站赏析永久使用免费虚拟主机
  • 【跟我学YOLO】YOLO26:YOLO Vision 2025 最新发布的端到端视觉 AI 新突破
  • 什么网站百度收录好最新国家大事时政新闻
  • 怎么做网站手机版辅助设计软件有哪些
  • Model Context Protocol (MCP)详解与Spring Boot集成实战
  • 珠海h5模板建站网站建设考试卷a卷
  • 豆包Seedream 4.0创意玩法大赏:开启AI绘画新纪元
  • 算法基础篇(5)前缀和
  • 手机网站宽度多少合适网站开发行业代码
  • 了解一下Ubuntu上搭建的ROS环境
  • 博客网站搭建网站建设需要资质么
  • 泰安市景区建设网站阿里巴巴企业网站怎么做
  • 网站采用什么字体wordpress get_pages()
  • 禁用内核模块,是否需要执行脚本 $ sudo update-initramfs -u $ sudo update-grub ?
  • 建站最好的公司排名织梦cms源码
  • 渲染 Python 中用 LaTeX 语法定义的数学公式 - 环境准备
  • 做教育业网站wordpress最漂亮的主题
  • 上海快速网站建设wordpress推广浏览插件
  • JVM-垃圾回收
  • [数据结构]ST表(markdown重制版)