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

ScheduledFuture Source Code Analysis

ScheduledFuture

Overview

  • is a delayed result-bearing action, 可以被cancel.
  • 通常是在ScheduledExecutorService里面schedule一个task, 然后ScheduledFuture是其task执行接受后的返回结果。

Code Analysis

  • 继承于两个接口: extends Delayed, Future
  • 一些继承chain
    • interface Delayed extends Comparable, Comparable 就是底。
    • Future 接口就是底。
  • 关于Future 接口
    • Future其实代表的是异步计算的一个结果。
    • Future下面的方法也是为了check该异步计算是否完成,或者等待其完成;或者获取该计算结果。
    • 要想知道异步计算是否完成,或者正在blocking, 只能通过 get 方法获取。
    • Cancel 方法是当你想要cancel该异步计算时可以调用的一个方法。
    • 除了上面提到的方法,其他方法则是用作判定该task是否正常完成或者被cancel了。
    • 当异步计算task完成后,是不可以再被cancel的。
    • 如果你想使用Future的cancel功能,但却不能提供一个usable result, 你可以指定Future<?>的 type, 并且返回null作为
    • 内存一致性影响:线程A异步计算的结果,如果线程B调用了future.get方法之后,是可以访问在线程A中异步计算过程中修改的共享数据和其结果的。
    • Methods
      • boolean cancel(boolean mayInterruptIfRunning);
        • 这一方法的目标是cancle对应的 task的执行, 不管该task是否已经启动都是可以调用这个方法的。
        • 如果此方法调用成功,则随后你再怎么调用isDone() or isCancelled(),结果都会返回true.
      • boolean isCancelled();
        • 如果一个task在未完成之前被cancle了,则此方法返回true.
      • boolean isDone();
        • 如果task完成,则此方法返回true; 不管该task是正常完成,还是被cancel, or even throw exception了。
      • V get() throws InterruptedException, ExecutionException;
        • 该方法被调用后,会一直等待该task完成。然后返回该task执行完后的结果。
      • V get(long timeout, TimeUnit unit);
        • 参数timeout规定了等待时间,如果等待时间到了,则不再等待。这样就意味着返回结果不一定是完成异步计算后的结果,如果完成,则返回结果为异步计算的结果;否则返回的结果并不是异步计算的结果。

相关文章:

ScheduledFuture Source Code Analysis

ScheduledFuture Overview is a delayed result-bearing action, 可以被cancel.通常是在ScheduledExecutorService里面schedule一个task, 然后ScheduledFuture是其task执行接受后的返回结果。 Code Analysis 继承于两个接口&#xff1a; extends Delayed, Future一些继承ch…...

【CSS】CSS 样式重置 (normalize.css 和 reset.css) 和通用样式配置

一般来说&#xff0c;每一个项目初始化阶段都需要样式重置和样式定制化。样式重置最常用的就是 normalize.css 和 reset.css 这两个文件。 他们的区别&#xff1a; Normalize.css更加注重保留有用的浏览器默认样式&#xff0c;仅修复浏览器之间的不一致性&#xff0c;适用于需…...

自动化机器学习(AutoML)详解

自动化机器学习&#xff08;AutoML&#xff09;详解 引言 在数据驱动的时代&#xff0c;将庞大的数据集转化为有价值的洞察和预测模型是众多组织的首要任务。然而&#xff0c;传统的机器学习流程复杂且耗时&#xff0c;包括数据预处理、特征选择、模型选择、调参以及模型评估…...

Linux: network:erspan0

文章目录 问题介绍生成时间:代码Linux引入后面NONE是怎么生成的问题 最近看到一个网卡是erspan0,不知道是做什么用的: # ip -d link show erspan0 7: erspan0@NONE: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN mode DEFAULT group default qlen 10000...

第11课 计算思维

从二级考试开始&#xff0c;计算思维基本上以编程题的形式考察。为了避免一看就会&#xff0c;一写就废的情况&#xff0c;需要我们加强编程练习&#xff0c;把学到的知识&#xff0c;通过实战练习&#xff0c;变成自己的本领。 同一道题&#xff0c;一般会有多种解决方法&…...

ACL, ACL Workshop, ACL Findings 解释

ACL&#xff08;Annual Conference of the Association for Computational Linguistics&#xff09;是自然语言处理&#xff08;NLP&#xff09;领域的顶级会议之一&#xff0c;但确实有多个与ACL相关的会议和出版物&#xff0c;具体如下&#xff1a; ACL Main Conference&…...

《使用Gin框架构建分布式应用》阅读笔记:p272-p306

《用Gin框架构建分布式应用》学习第15天&#xff0c;p272-p306总结&#xff0c;总35页。 一、技术总结 1.TDD(test-driven development) 虽然经常看到TDD这个属于&#xff0c;从本人的工作经历看&#xff0c;实际开发中用得相对较少。 2.unitest(单元测试) go语言开发中&a…...

【搜索引擎】俄罗斯搜索引擎yandex

俄罗斯搜索引擎yandex 1997年&#xff0c;俄罗斯搜索引擎Yandex&#xff08;俄语意为&#xff1a;语言目录&#xff09;首次上线&#xff0c;已发展成为全球第四大搜索引擎和第二大非英语搜索引擎 https://yandex.com/...

加密源代码|html代码如何加密保护?3分钟学会4种源代码加密妙招,代码人必看

你是否曾担心过自己的源代码被轻易复制或篡改&#xff1f; 在这个开源和共享盛行的时代&#xff0c;如何加密源代码&#xff0c;成为了每个开发者不得不面对的问题。 古人云&#xff1a;“工欲善其事&#xff0c;必先利其器。”今天&#xff0c;我们就来探讨一下如何加密保护你…...

Jetson Orin NX平台自研载板 IMX477相机掉线问题调试记录

1. 前言 平台: NVIDIA Orin NX 硬件: 自研载板 相机: 3个IMX477树莓派HQ摄像头通过CSI接口连接 版本: L4T 35.4.1(我们也在35.5.0上测试了一些东西) 参数: 30fps,4032x3040 问题描述: 其中一个IMX477相机在录制过程中出现可变时间后退出 短则10秒,长则5小时,…...

spring-boot(整合mybatisplus、及常见注解)

介绍 在日常开发中单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是MybatisPlus. MyBatisPlus是针对于Mybatis框架的增强,即合…...

深度学习:yolov3的使用--建立模型

使用argparse模块来定义和解析命令行参数 创建一个ArgumentParser对象 parser argparse.ArgumentParser() 训练的轮数&#xff0c;每批图像的大小&#xff0c;更新模型参数之前累积梯度的次数,模型定义文件的路径。 parser.add_argument("--epochs", typeint, d…...

关于我、重生到500年前凭借C语言改变世界科技vlog.13——深入理解指针(3)

文章目录 1.字符指针变量2.数组指针变量3.函数指针变量4.函数指针数组5.二维数组传参本质6.拓展补充希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本章节接着学习常见的指针变量类型 1.字符指针变量 字符指针变量&#xff0c;顾名思义就是字…...

每日算法一练:剑指offer——数组篇(6)

1.点名 某班级 n 位同学的学号为 0 ~ n-1。点名结果记录于升序数组 records。假定仅有一位同学缺席&#xff0c;请返回他的学号。 示例 1: 输入: records [0,1,2,3,5] 输出: 4示例 2: 输入: records [0, 1, 2, 3, 4, 5, 6, 8] 输出: 7提示&#xff1a; 1 < records.le…...

【环境搭建】Apache ZooKeeper 3.8.4 Stable

软件环境 Ubuntu 20.04 、OpenJDK 11 OpenJDK 11&#xff08;如果已经安装&#xff0c;可以跳过这一步&#xff09; 安装OpenJDK 11&#xff1a; $ sudo apt-get update$ sudo apt-get install -y openjdk-11-jdk 设置 JAVA_HOME 环境变量&#xff1a; $ sudo gedit ~/.bash…...

算法练习——双指针

前言&#xff1a;大佬写博客给别人看&#xff0c;菜鸟写博客给自己看&#xff0c;我是菜鸟。 学前须知&#xff08;对自己&#xff09;&#xff1a;这里的指针不一定指地址&#xff01;也可能是数组下标。 1&#xff1a;移动零(双指针) 题目要求&#xff1a; 解题思路&#x…...

vue中el-table显示文本过长提示

1.el-table设置轻提示:show-overflow-tooltip“true“&#xff0c;改变轻提示宽度...

JS 字符串拼接并去重

1、includes 循环数组将某个字段拼接成新的字符串并去重&#xff08;数组里面包含的一个对象&#xff0c;或者其他都OK&#xff09; // 定义一个数组 let arr[.......] // 定义拼接的字符串 let a //循环数组将里面某个字段拼接在一起并去重 arr.forEach(item > {if(!a.in…...

opencv 图像预处理

图像预处理 ​ 在计算机视觉和图像处理领域&#xff0c;图像预处理是一个重要的步骤&#xff0c;它能够提高后续处理&#xff08;如特征提取、目标检测等&#xff09;的准确性和效率。OpenCV 提供了许多图像预处理的函数和方法&#xff0c;以下是一些常见的图像预处理操作&…...

SAP B1 功能模块字段介绍 - 价格清单(下)

目录 背景 五、业务伙伴的特殊价格 1. 单据逻辑功能 2. 部分字段解释 3. 操作流程 3.1 时间相关 3.2 数量相关 4. 实例 六、复制特殊价格到选择标准 1. 单据逻辑功能 2. 部分字段解释 七、全局更新特殊价格 ​编辑 1. 单据逻辑功能 2. 部分字段解释 八、价格更…...

Aspia文本聊天功能:内置即时通讯的远程协助工具

Aspia文本聊天功能&#xff1a;内置即时通讯的远程协助工具 【免费下载链接】aspia Remote desktop and file transfer tool. 项目地址: https://gitcode.com/gh_mirrors/as/aspia Aspia是一款功能强大的远程桌面和文件传输工具&#xff0c;其内置的文本聊天功能为远程协…...

专业解密QQ音乐加密格式:QMCDecode让音乐文件重获自由播放权

专业解密QQ音乐加密格式&#xff1a;QMCDecode让音乐文件重获自由播放权 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c…...

Delphi二进制迷宫破解:IDR交互式重构器的逆向工程革命

Delphi二进制迷宫破解&#xff1a;IDR交互式重构器的逆向工程革命 【免费下载链接】IDR Interactive Delphi Reconstructor 项目地址: https://gitcode.com/gh_mirrors/id/IDR 在逆向工程的世界里&#xff0c;Delphi编译的程序犹如一座座精心设计的迷宫——结构复杂、入…...

毕业设计精选【芳心科技】12V锂电池充放电管理系统

实物效果图&#xff1a;实现功能&#xff1a;1.通过电流传感器&#xff0c;电压传感器检测电池电压电流。 2.通过ds18b20温度传感器检测电池温度 3.超温&#xff0c;超压时控制电池停止放电或充电4.利用安时积分法估算剩余电量电量显示要求能实时监控5.控制充放电用一个继电器控…...

CentOS 8 Stream换源踩坑记:从阿里云到清华源,哪个更适合你的服务器?

CentOS 8 Stream镜像源深度评测&#xff1a;阿里云、清华源与网易163实战对比 当你在凌晨三点被服务器告警吵醒&#xff0c;发现安全补丁因下载超时无法安装时&#xff0c;一个可靠的软件源就成了救命稻草。作为国内使用最广泛的RHEL系社区发行版&#xff0c;CentOS 8 Stream的…...

TortoiseGit实战:用‘拣选’功能精准移植单个提交,告别全量合并的烦恼

TortoiseGit实战&#xff1a;用‘拣选’功能精准移植单个提交&#xff0c;告别全量合并的烦恼 在团队协作开发中&#xff0c;我们常常遇到这样的场景&#xff1a;测试分支&#xff08;feature/hotfix&#xff09;中某个关键Bug修复已经验证通过&#xff0c;但该分支还包含大量未…...

学校开始查AI率了!知网AIGC检测到底是什么原理?

一份知网AIGC检测报告摆在面前&#xff1a;疑似度84.9%。几乎整篇论文都被标红&#xff0c;系统判定其中84.9%的内容"疑似AI生成"。这个数字意味着什么&#xff1f;意味着在任何一所高校的标准下&#xff0c;这篇论文都不可能通过审查。 然而同一篇论文经过处理后再次…...

从MSP430到MSPM0L1306:嵌入式工程迁移实战与SDK应用指南

1. 项目概述&#xff1a;从零理解MSPM0L1306的工程迁移最近在帮一个朋友处理一个老项目升级&#xff0c;核心需求是把一个基于TI老款MSP430系列MCU的温控器&#xff0c;迁移到TI新推出的MSPM0L1306这颗芯片上。朋友的原话是&#xff1a;“老芯片快买不到了&#xff0c;新出的MS…...

2026年10款论文降AI率平台实测:从90%降至10%的硬核之选

现在学校对 AIGC 的检测越来越严格&#xff0c;降低 AI 率成了毕业生最头疼的问题。我当初写论文的时候&#xff0c;就因为 AI 率太高差点栽跟头&#xff0c;熬夜一遍遍手动修改&#xff0c;结果不仅 AI 率没降下来&#xff0c;查重率还越改越高&#xff0c;整个人都快崩溃了。…...

录音会议纪要整理教程

无论是整理课堂录音复习、小组讨论纪要&#xff0c;还是调研访谈整理&#xff0c;很多新手都会陷入困扰&#xff1a;要么逐句听录耗时费力&#xff0c;要么转写内容错漏多、找不到重点。这篇零基础教程&#xff0c;步骤简洁易懂&#xff0c;看完可直接上手&#xff0c;帮你大幅…...