mfc 弹簧_弹簧和线程:异步

mfc 弹簧

以前,我们开始使用spring和TaskExecutor ,因此我们对如何在spring应用程序中使用线程更加熟悉。

但是,使用任务执行程序可能比较麻烦,尤其是当我们需要执行简单的操作时。

Spring的异步方法可以解决。

您不必为可运行对象和TaskExecutor烦恼,而是为了简化异步功能而对执行程序的控制权进行了交易。
为了在另一个线程中执行函数,您要做的就是使用@Async注释对函数进行注释。

异步方法有两种模式。

一劳永逸模式:一种返回void类型的方法。

@Async@Transactionalpublic void printEmployees() {List<Employee> employees = entityManager.createQuery("SELECT e FROM Employee e").getResultList();employees.stream().forEach(e->System.out.println(e.getEmail()));}

结果检索模式:一种返回未来类型的方法。

@Async@Transactionalpublic CompletableFuture<List<Employee>> fetchEmployess() {List<Employee> employees = entityManager.createQuery("SELECT e FROM Employee e").getResultList();return CompletableFuture.completedFuture(employees);}

要特别注意以下事实:@Async注释如果被'this'调用,则不起作用。 @Async的行为就像@Transactional批注一样。 因此,您需要将异步功能公开。 您可以在aop代理文档中找到更多信息。

但是,仅使用@Async注释是不够的。 我们需要通过在我们的配置类之一中使用@EnableAsync注释来启用Spring的异步方法执行功能。

package com.gkatzioura.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.task.TaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import java.util.concurrent.Executor;/*** Created by gkatzioura on 4/26/17.*/
@Configuration
@EnableAsync
public class ThreadConfig {@Beanpublic TaskExecutor threadPoolTaskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(4);executor.setMaxPoolSize(4);executor.setThreadNamePrefix("sgfgd");executor.initialize();return executor;}}

下一个问题是我们如何声明异步函数将使用的资源和线程池。 我们可以从文档中得到答案。

默认情况下,Spring将搜索关联的线程池定义:上下文中的唯一TaskExecutor bean,否则为名为“ taskExecutor”的Executor bean。 如果二者都不可解决,则将使用SimpleAsyncTaskExecutor处理异步方法调用。

但是在某些情况下,我们不希望同一线程池运行应用程序的所有任务。 我们可能希望具有不同配置的单独线程池支持我们的功能。

为此,我们将可能要用于每个函数的执行程序的名称传递给@Async批注。

例如,配置了名称为“ specificTaskExecutor”的执行程序。

@Configuration
@EnableAsync
public class ThreadConfig {@Bean(name = "specificTaskExecutor")public TaskExecutor specificTaskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.initialize();return executor;}}

然后,我们的函数应设置限定符值,以确定特定执行程序或TaskExecutor的目标执行程序。

@Async("specificTaskExecutor")
public void runFromAnotherThreadPool() {System.out.println("You function code here");
}

下一篇文章我们将讨论线程事务。

您可以在github上找到源代码。

翻译自: https://www.javacodegeeks.com/2017/10/spring-threads-async.html

mfc 弹簧

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

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

相关文章

g30u盘启动 中科曙光1620_I620-G30

请选择国家/地区Afghanistan (93)Albania (355)Algeria (213)Andorra (376)Angola (244)Antigua and Barbuda (1268)Argentina (54)Armenia (374)Australia (61)Austria (43)Azerbaijan (994)Bahamas (1242)Bahrain (973)Bangladesh (880)Belarus (375)Belgium (32)Belize (501…

局域网限速软件_8款Windows实用软件推荐,纯干货,总有一款是你必备的

开学后&#xff0c;有些小伙伴得走进大学校门&#xff0c;有些小伙伴走向公司大门&#xff0c;不管你做出了哪种选择&#xff0c;最终都会走向社会&#xff0c;走向岗位。我已经毕业走向社会近10年了&#xff0c;珍藏了一些小视频&#xff0c;呃说错了&#xff0c;是珍藏了一些…

MySQL 插入数据时,中文乱码问题的解决

当向 MySQL 数据库插入一条带有中文的数据如下&#xff1a; insert into employee values(null,张三,female,1995-10-08,2015-11-12,Sales,2000,是个好员工&#xff01;); 出现乱码时&#xff0c;可以使用语句 show variables like character%; 来查看当前数据库的字符编码集…

javaserver_什么是JavaServer Faces(JSF)

javaserver这是一个分为两部分的系列&#xff0c;其中我介绍了JSF 2及其如何适合Java EE生态系统。 在第1部分中&#xff0c;我将介绍JavaServer Pages&#xff08;JSF&#xff09;背后的基本思想 &#xff0c;在第2部分中&#xff0c;我将介绍Facelets声明语言 。 在构建Web…

安装计算机一级出现appcrash,win10系统运行程序出现appcrash错误的办法

win10系统使用久了&#xff0c;好多网友反馈说win10系统运行程序出现appcrash错误的问题&#xff0c;非常不方便。有什么办法可以永久解决win10系统运行程序出现appcrash错误的问题&#xff0c;面对win10系统运行程序出现appcrash错误的图文步骤非常简单&#xff0c;只需要1、同…

winpe镜像文件iso下载_下载:微软正式发布Win10 2004版并即日起开始推送

PS&#xff1a;关于Windows 10 v2004版蓝点网早前已建立专题&#xff0c;目前该专题已收录关于该版本的101篇文章&#xff0c;微信篇幅有限无法全部发过来&#xff0c;准备升级的用户建议点击阅读原文按钮或使用电脑访问蓝点网首页查看Windows 10 v2004专题。刚刚微软在官方博客…

Linux 命令之 cat -- 在终端设备上显示文件内容(查看文件内容/浏览文件内容)

文章目录一、命令介绍二、命令选项三、参考示例&#xff08;一&#xff09;查看文件的内容&#xff0c;并显示行数编号&#xff08;二&#xff09;把 test4.txt 的内容加上行号后输出到 test3.txt 这个文档里&#xff08;三&#xff09;清空 test4.txt 的内容&#xff08;四&am…

少儿计算机兴趣小组活动记录,2013年度儿童画兴趣小组活动记录Word编辑

《2013年度儿童画兴趣小组活动记录Word编辑》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《2013年度儿童画兴趣小组活动记录Word编辑(16页珍藏版)》请在人人文库网上搜索。1、传播优秀Word版文档 &#xff0c;希望对您有帮助&#xff0c;可双击去除&#xff01;岑兜…

java变量_Java变量

java变量变数 变量是Java程序中基本的存储单元。 变量由标识符&#xff0c;类型和可选的初始化程序的组合定义。 此外&#xff0c;所有变量都有一个范围&#xff0c;该范围定义了它们的可见性和生存期。 接下来将检查这些元素。 声明变量 在Java中&#xff0c;必须先声明所有变…

iphone固件降级_我在iPhone上装了个安卓

目前使用Android系统设备的好处就是可以执行更多的操作。主要是因为安卓拥有自己的开源计划AOSP(Android Open Source Project)&#xff0c;比iOS开放了更多的应用接口API&#xff0c;商家可以用Android源码进行二次开发&#xff0c;相对iOS开放很多。图片来自百度iPhone跟Andr…

c# char unsigned_c – unsigned char和char指针之间的区别

我对unsigned char(在WinAPI中也是BYTE)和char指针之间的差异感到困惑.目前我正在使用一些基于ATL的遗留代码,我看到很多表达式如下&#xff1a;CAtlArray rawContent;CALL_THE_FUNCTION_WHICH_FILLS_RAW_CONTENT(rawContent);return ArrayToUnicodeString(rawContent);// or r…

名词解释多媒体计算机,多媒体-名词解释及填空

上传的两个关于多媒体技术的文档是本人提取教材中的部分,用于考试复习所用。因为在网上甚少找到此类信息,仅供大家参考。◆多媒体&#xff1a;指信息表示媒体的多样化&#xff0c;常见的多媒体有文本、图形、图形、声音、音乐、视频、动画等多种形式。◆多媒体技术&#xff1a;…

jshell_五分钟的JShell

jshell这篇文章建立在我的My Java 9顶级功能文章的基础上&#xff0c;通过对这些功能的深入研究。 在这里&#xff0c;我们向您展示如何在五分钟内学习jshell并改善Java 9开发经验。 入门 假设您已经下载并安装了Java 9&#xff0c;则可以通过键入以下内容启动Shell&#xff1…

极速pdf编辑器的水印如何去掉_如何修改PDF?有没有详细的PDF编辑器操作方法?...

在工作中我们每天都会处理很多文件&#xff0c;而PDF格式因为其格式稳定也被越来越多的人接受并使用&#xff0c;但也正因为如此&#xff0c;PDF的修改相比较以前常用的Word会复杂很多。那么应该如何修改PDF呢&#xff1f;其实使用PDF编辑器就能让PDF文档像Word一样轻松编辑。1…

python django开发网站项目难吗_用django开发网站时遇到的问题

1.网站的登录功能怎么实现&#xff1a;密码的存储机制、重置密码时链接的生成算法&#xff0c;第三方认证的原理等等。django的密码储存是 Hashsalt 并迭代 第三方认证是用oauth2django-admin里面有写了哦 循环1000次加密算法google关键词 hash salt&#xff0c;oauth22.介绍设…

查看 Linux 系统版本(发行版本)信息的相关命令语句

文章目录一、查看 version 文件二、只查看内核版本号三、查看系统内核版本信息四、查看系统基础版本及发行版本信息五、仅查看发行版本信息一、查看 version 文件 [roothtlwk0001host ~]# cat /proc/version Linux version 4.18.0-193.6.3.el8_2.x86_64 (mockbuildkbuilder.bs…

计算机网络专科升本科,目前专科升本科有哪几种途径?

原标题&#xff1a;目前专科升本科有哪几种途径&#xff1f;随着社会的高速发展&#xff0c;只有专科学历是远远不够自身发展需求的。于是有不少同学就想专科升本科学历来提高自己的职业竞争力&#xff0c;但他们对于目前专科升本科的几种途径还不够了解。那么&#xff0c;目前…

java私有属性和私有方法_Java 9中什么是私有的?

java私有属性和私有方法在进行面试时&#xff0c;我发现大多数应聘者都不知道Java中的private修饰符真正意味着什么。 他们对此有所了解&#xff0c;足以应付日常编码&#xff0c;但还远远不够。 这不成问题。 足够了解就足够了。 但是&#xff0c;了解Java的一些内部工作仍然很…

stata F值缺失_stata面板数据回归操作之GMM

新手面板数据回归之GMM 的 stata 操作步骤广义矩估计&#xff08; Generalized Method of Moments 即 GMM &#xff09; 原理就是回归&#xff01;就是一种高级点的回归&#xff01;我也是新手&#xff0c;也有很多不太懂的地方。断断续续学习了两个月&#xff0c;看了很多文献…

后缀为frm是什么文件_Shell 点文件可以为你做点什么

了解如何使用配置文件来改善你的工作环境。-- H.waldo Grunenwald(作者)不要问你可以为你的 shell 点文件(dotfile)做什么&#xff0c;而是要问一个 shell 点文件可以为你做什么&#xff01;我一直在操作系统领域里面打转&#xff0c;但是在过去的几年中&#xff0c;我的日常使…