首页 > 编程语言 >java 异步方法总结(减少主线程阻塞)

java 异步方法总结(减少主线程阻塞)

时间:2023-06-28 13:33:27浏览次数:32  
标签:info 异步 java log 阻塞 TestAsyncDemo 方法 public

主要点

第一点:@Async只能使用到被代理的对象方法上,即代理类的入口方法处,且方法必须是public的。

第二点:事务处理机制

使用@Async异步注解不能和@Transaction事务注解在同一个方法上同时使用,不然事务注解将无效。

要使用事务,需要把事务注解提取到方法里面的子方法上。

 

 

代码实践 demo

controller 层代码:

@GetMapping("/TestAipAsyncDemo")
public void TestAsyncDemo() {
    log.info("TestAipAsyncDemo in");
    binToBinService.TestAsyncDemo("test");
    log.info("TestAipAsyncDemo out");
}

 

   service 层代码:

@Service
@EnableAsync
@Slf4j
public class BinToBinService {

    //异步方法必须为public
    //异步测试demo
    public void TestAsyncDemo(String aaa)
    {
        log.info("TestAsyncDemo in");
        BinToBinService binToBinService = SpringContextUtil.getBean(BinToBinService.class);
        binToBinService.TestAsync(aaa);
        log.info("TestAsyncDemo out");
    }
   
}

最后看log 输出顺序:

 

 

 

 

标签:info,异步,java,log,阻塞,TestAsyncDemo,方法,public
From: https://www.cnblogs.com/canday007/p/17511164.html

相关文章

  • 2、Apache Kudu-java api操作kudu详细示例以及kudu的三种实现示例
    ApacheKudu系列文章1、ApacheKudu介绍及架构、工作原理、两种部署方式、使用限制详解2、ApacheKudu-javaapi操作kudu详细示例以及kudu的三种实现示例3、ApacheKudu集成impala(shell和java操作)的详细操作(文章目录)本文介绍了javaapi操作kudu详细示例以及kudu的三种......
  • JAVA常用类---静态内部类
    publicclassOuter{privateStringname="李四";privateStringsex="男";//静态类和外部类权限一样/*外部调用Outer.Interinter=newOuter.Inter();Outer.Inter仅表示包含关系,如果是成员类应为Outer.Interinter=newOuter().Inter();还需要导......
  • 使用 IntelliJ IDEA 开发 Azure Function APP (Java)
    使用IntelellJIDEA开发AzureFunctionAPP(Java)前提Azure账户并有可食用的订阅。创建免费的Azure账户。Azure支持的JavaDevelopmentKit(JDK),JDK8或JDK11。IntelliJIDEA无限制版本或社区版本均可。Maven3.5+最新的FunctionCoreTools安装插件并登......
  • java基础
    一、注释、标识符、关键字注释(comments)代码量少的时候我们能看懂,项目结构复杂的时候我们需要用到注释,使项目具有更好的可读性。注释并不会被执行,是写给我们人看的书写注释是一个非常好的习惯Java中的注释有三种单行注释:“//注释一行”多行注释:“/**/注释多......
  • Android 中高级面试原理:热修复与插件化基础—Java与Android虚拟机
    一、Java虚拟机(JVM)1、JVM整体结构使用javac将java文件编译成class文件。类加载器(ClassLoader)将class字节码加载进JVM对应的内存中。JVM将内存分配给方法区、堆区、栈区、本地方式栈4个部分,这4个部分分别存储字节码不同的部分。垃圾回收器(gc)会管理整个内存空间中的垃圾。2、Java代码......
  • Excel JavaScript object model in Office Add-ins
    ExcelJavaScriptobjectmodelinOfficeAdd-ins-OfficeAdd-ins|MicrosoftLearnOffice.jsAPIforExcelExcel加载项使用 OfficeJavaScriptAPI 与Excel中的对象进行交互,其中包括两个JavaScript对象模型:ExcelJavaScriptAPI:随Office2016一起引入的Exc......
  • Java中的异常处理
    Java异常类层次结构图 在Java中,所有的异常都有一个共同的祖先java.lang包中的Throwable类。Throwable:有两个重要的子类:Exception(异常)和Error(错误),二者都是Java异常处理的重要子类,各自都包含大量子类。 Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数......
  • java联合索引(复合索引)的好处包括:
    联合索引(复合索引)的好处包括:支持多列查询:联合索引可以用于满足多个列的查询条件,避免了在多个单列索引之间的多次查找和合并。覆盖索引优化:如果联合索引包含了查询需要的所有列,即成为覆盖索引,可以避免回表操作,减少IO开销,提高查询性能。有序性优势:联合索引的顺序可以影响查询的性能。......
  • linux 安装java环境
    第一步:下载jdkhttps://www.oracle.com/java/technologies/downloads/#java8需要登录才能下载第二步:创建jdk安装文件夹#在/usr/local下创建java文件夹cd/usr/localmkdirjava#进入java文件夹目录下cdjava第三步:上传下载好的J......
  • Java学习——变量和常量的相关知识
    变量inta=1,b=2,c=3;//不推荐Stringname="徐菲菲";charx='X';doublepi=3.14;变量作用域类变量(静态变量)定义在类中、方法之外的变量,并且使用static关键字修饰,作用域为整个类,可以被类中的任何方法、构造方法和语句块访问,静态变量的值在程序运行期间只有一个副本。......