如何构建个人网站深圳注册公司补贴政策

diannao/2026/1/17 19:55:15/文章来源:
如何构建个人网站,深圳注册公司补贴政策,专业做网站开发,毕设源码网站我已经写了很多有关InterruptedException和中断线程的文章 。 简而言之#xff0c;如果您没有Future.cancel()调用Future.cancel()那么Future将终止待处理的get() #xff0c;但还将尝试中断基础线程。 这是一个非常重要的功能#xff0c;可以更好地利用线程池。 我还写信总… 我已经写了很多有关InterruptedException和中断线程的文章 。 简而言之如果您没有Future.cancel()调用Future.cancel()那么Future将终止待处理的get() 但还将尝试中断基础线程。 这是一个非常重要的功能可以更好地利用线程池。 我还写信总是比标准Future更喜欢CompletableFuture 。 事实证明功能更强大的Future弟兄没有那么优雅地处理cancel() 。 考虑以下任务我们稍后将在整个测试中使用以下任务 class InterruptibleTask implements Runnable {private final CountDownLatch started new CountDownLatch(1)private final CountDownLatch interrupted new CountDownLatch(1)Overridevoid run() {started.countDown()try {Thread.sleep(10_000)} catch (InterruptedException ignored) {interrupted.countDown()}}void blockUntilStarted() {started.await()}void blockUntilInterrupted() {assert interrupted.await(1, TimeUnit.SECONDS)}} 客户端线程可以检查InterruptibleTask以查看其是否已开始或被中断。 首先让我们看一下InterruptibleTask对外部的cancel()反应 def Future is cancelled without exception() {given:def task new InterruptibleTask()def future myThreadPool.submit(task)task.blockUntilStarted()and:future.cancel(true)when:future.get()then:thrown(CancellationException) }def CompletableFuture is cancelled via CancellationException() {given:def task new InterruptibleTask()def future CompletableFuture.supplyAsync({task.run()} as Supplier, myThreadPool)task.blockUntilStarted()and:future.cancel(true)when:future.get()then:thrown(CancellationException) } 到目前为止一切都很好。 显然 Future和CompletableFuture工作方式几乎相同-在取消结果后检索结果会引发CancellationException 。 但是myThreadPool线程呢 我以为它会被游泳池打断从而被回收我怎么了 def should cancel Future() {given:def task new InterruptibleTask()def future myThreadPool.submit(task)task.blockUntilStarted()when:future.cancel(true)then:task.blockUntilInterrupted() }Ignore(Fails with CompletableFuture) def should cancel CompletableFuture() {given:def task new InterruptibleTask()def future CompletableFuture.supplyAsync({task.run()} as Supplier, myThreadPool)task.blockUntilStarted()when:future.cancel(true)then:task.blockUntilInterrupted() } 第一个测试将普通的Runnable提交给ExecutorService并等待其启动。 稍后我们取消Future并等待直到观察到InterruptedException 。 当基础线程被中断时 blockUntilInterrupted()将返回。 但是第二次测试失败。 CompletableFuture.cancel()永远不会中断基础线程因此尽管Future看起来好像已被取消但后备线程仍在运行并且sleep()不会抛出InterruptedException 。 错误或功能 它已记录在案 因此很遗憾地提供一个功能 参数 mayInterruptIfRunning –此值在此实现中无效因为不使用中断来控制处理。 您说RTFM但是为什么CompletableFuture这样工作 首先让我们研究“旧的” Future实现与CompletableFuture有何不同。 从ExecutorService.submit()返回的FutureTask具有以下cancel()实现我使用类似的非线程安全Java代码删除了Unsafe 因此仅将其视为伪代码 public boolean cancel(boolean mayInterruptIfRunning) {if (state ! NEW)return false;state mayInterruptIfRunning ? INTERRUPTING : CANCELLED;try {if (mayInterruptIfRunning) {try {Thread t runner;if (t ! null)t.interrupt();} finally { // final statestate INTERRUPTED;}}} finally {finishCompletion();}return true; } FutureTask具有一个遵循该状态图的state变量 在的情况下 cancel()我们可以进入CANCELLED状态或去INTERRUPTED通过INTERRUPTING 。 核心部分是我们拿runner线程如果存在的也就是说如果当前正在执行的任务我们尽量打断它。 该分支负责急切和强制中断已运行的线程。 最后我们必须通知阻塞的所有线程Future.get()中finishCompletion()这里无关紧要。 因此很明显多大的Future取消已经运行的任务。 那CompletableFuture呢 cancel()伪代码 public boolean cancel(boolean mayInterruptIfRunning) {boolean cancelled false;if (result null) {result new AltResult(new CancellationException());cancelled true;}postComplete();return cancelled || isCancelled(); } 令人失望的是我们几乎没有将result设置为CancellationException 而忽略了mayInterruptIfRunning标志。 postComplete()也有类似的作用finishCompletion() -在通知未来注册的所有悬而未决的回调。 它的实现相当令人不快使用非阻塞式Treiber stack 但是它绝对不会中断任何底层线程。 原因和含义 在CompletableFuture情况下有限的cancel()不是错误而是设计决定。 CompletableFuture并非固有地绑定到任何线程而Future几乎总是代表后台任务。 从零开始创建CompletableFuture new CompletableFuture() 是完美的其中根本没有要取消的底层线程。 我仍然不禁感到大多数CompletableFuture 都将具有关联的任务和后台线程。 在这种情况下 cancel()可能会出现故障。 我不再建议用CompletableFuture盲目地替换Future 因为它可能会更改依赖cancel()的应用程序的行为。 这意味着CompletableFuture故意违反了Liskov替换原则 -这是需要考虑的严重问题。 翻译自: https://www.javacodegeeks.com/2015/03/completablefuture-cant-be-interrupted.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国家城乡与住房建设部网站wordpress删除插件ftp

DaVinci是DSP和ARM 双核架构的SOC芯片。对芯片与外界的交互通过ARM端的Montavista Linux和相关驱动与应用程序来管理, DSP端只处理编解码相关的算法。DSP和ARM之间的通讯和交互是通过引擎(Engine)和服务器(Server)来完成的。1. 编解码引擎(Codec Engine) a. 核心引…

肯德基的网站建设wordpress 集群部署

介绍 顶顶通呼叫中心中间件机器人压力测试(mod_cit基于FreeSWITCH) 一、配置acl.conf 打开ccadmin-》点击配置文件-》点击acl.conf-》我这里是已经配置好了的,这里的192.168.31.145是我自己的内网IP,你们还需要自行修改 二、配置线路 打开ccadmin-&g…

君隆网站建设桂林哪里做网站

此篇是1-4 《半导体》的会和处啦,我们有了协议库,也有了通讯库,这不得快乐的玩一把~ 一、先创建一个从站,也就是我们的Equipment端 QT - guiCONFIG c11 console CONFIG - app_bundle CONFIG no_debug_release # 不会生…

网站服务器自己搭建网页设计入门基础知识

项目应用场景 面向自动驾驶场景的车道线检测场景,项目的特点是能够达到实时的车道线检测 项目效果: 项目细节 > 具体参见项目 README.md (1) 安装依赖 pip3 install -r requirements.txt (2) 测试图片 python tools/test_lanenet.py --weights_pat…

网站news怎么做旅游网页设计说明书

使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 使用指定的类XXX初始化日志对象,方便在日志输出的时候,可以打印出日志信息所属的类。 …

网站改域名备案通河县机场建设网站

​ ​ ​在遥感技术的应用中,图像处理是不可或缺的关键步骤。从消除各种辐射畸变和几何畸变,到利用增强技术突出景物的光谱和空间特征,再到进一步理解、分析和判别处理后的图像,这一过程为我们呈现了一幅幅更为真实、清晰的…

网站设计价钱网站美工

路径规划中的曲线插值是一种数学方法,它通过一系列离散的点生成一条平滑的曲线,这条曲线可以用于机器人导航、自动车辆驾驶、动画制作等领域。以下是一些常见的曲线插值方法: 线性插值: 线性插值是最简单的插值方法,它…

山西长治做网站公司有哪些北京网站制作济南

这篇博文是接着这个系列前面的博文,来讲如何实现医学图像三视图同步视图。我想到的一个思路是用Scrollbar来控制切面的改变,还有一个想法是在三维图像上取点,然后以这个点为切面中心更新三维视图。这篇博文主要介绍的就是第二个想法的三维图像…

天津 公司网站建设360社区app

算术编码 是一种无损数据压缩方法,也是一种熵编码的方法。和其它熵编码方法不同的地方在于,其他的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码,而算术编码是直接把整个输入的消息编码为一个数,一个…

专门做奢侈品的网站有哪些深入浅出wordpress pdf

Zabbix6.4 监控系统 密码忘记怎么办? 如下图 本次主要介绍在Zabbix6.4中重置用户密码的步骤。 步骤 如果您忘记了Zabbix密码并且无法登录,请向Zabbix管理员求助。 超级管理员用户可以在用户配置表单中更改所有用户的密码。 如果超级用户忘记了密码&a…

有道翻译网站 做翻译上杭县住房和城乡建设局网站

MySQL的体系架构 一、MySQL简介二、MySQL的体系架构三、MySQL的内存结构四、MySQL的文件结构 一、MySQL简介 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,后被Sun公司收购,Sun公司被Oracle…

做挂网站万网 安装wordpress

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/fileupdown 目录 文件上传 一、基本介绍 二、文件上传的基本原理 ​编辑 三、文件上传应用实例 四、文件上传的注意细节 1.解决中文乱码问题 2.分割文件夹 3.防止重名 4.百度WebUploader 5.空…

微网站制作平台哪个好wordpress php 采集器

在博问中(.net core怎么实现邮件发送)知道了MailKit无法使用阿里云邮件推送服务发送邮件的问题,自已实测也遇到同样的问题,而用自己搭建的邮件服务器没这个问题。 于是,向阿里云提交了工单。。。在提供了TCP抓包数据后…

爱站网关键词挖掘易营宝网站建设

四、(2)获取数据(补充urllib)(爬虫及数据可视化) urllibget请求post请求User-AgentResponse模拟真实信息在豆瓣spider中真实实现 urllib 此处的扩展,可以进行在主体的程序学习完成后&#xff0…

discuz建网站网站内容管理系统

🌈hello,你好鸭,我是Ethan,一名不断学习的码农,很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 🏃人生之义,在于追求,不在成败,勤通…

建站公司新闻资讯关于网站建设的知识

一、chown 的简介 chown 用于更改文件或目录的所有者(owner)身份。通过 chown 命令,可以将文件或目录的所有权转移给另一个用户或组,从而控制对该文件或目录的访问和权限。 二、chown 的参数说明 使用语法:chown [新所…

常平镇仿做网站贵州公明建设投资咨询有限公司官方网站

【26.4K⭐】ShareX:一款开源免费、功能强大且丰富的截屏录屏软件 在日常工作、学习和娱乐过程中,我们经常需要截取屏幕或者录制屏幕上特定区域中的内容并进行标记、编辑等操作。无论是为了记录重要的信息、分享有趣的内容,还是为了制作教程和…

济宁建设局网站招聘会现在哪个电商平台比较好做

开头 通常作为一个Android APP开发者,我们并不关心Android的源代码实现,不过随着Android开发者越来越多,企业在筛选Android程序员时越来越看中一个程序员对于Android底层的理解和思考,这里的底层主要就是Android Framewok中各个组…

代做毕业设计网站 道路桥梁wordpress热门文章代码

C中,我们一般可以以基类声明纯虚函数,然后让派生类继承并重写这个虚函数,用​override表示显示覆盖基类方法,但一直没有提供一种方法来阻止派生类继承基类的虚函数。 C11标准引入了final说明符,很好的解决了上面的问题…

湛江网站建设运营方案六安城市网怎么样

1.引入 在Servlet3.0以后的版本提供了Servlet注解配置&#xff0c;大大简化了代码编写。它可以替代xml文件的配置 2.代码实现 <1>注解开发代码如下&#xff1a; WebServlet(value "/servlet1", initParams {WebInitParam(name "charset", val…