栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

同步和异步

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

同步和异步

同步和异步通常用来形容方法的调用方式。

同步方法表明调用一旦开始,调用者必须等待方法执行完成,才能继续执行后续方法。

异步方法表明,方法一旦开始,立即返回,调用者无需等待其中方法执行完成,就可以继续执行后续方法。
通常我们写的方法都是同步方法,方法间执行都是串行化的,在一个线程内运行。

同步是单线程 

异步是多线程

依次执行的同步调用方式

public class ThreadText {

    public static void eatMeal() {
        System.out.println("已经烧开水了");
        try {
//模拟等待凉水的时间
            Thread.sleep(999);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("水的温度正好了吃药吧");
    }

    public static void shop() {
        System.out.println("出去遛弯");
    }

//执行主方法

    public static void main(String[] args) {
        eatMeal();
        shop();
    }


}

输出结果

 

我们修改一下eatMeal()方法,改为异步方式,通常使用线程开启异步,在springboot中可以使用(@EnableAsync和@Async)开启异步模式。

public class ThreadText {
    public static void eatMeal() {
        System.out.println("已经烧开水了");
        new Thread(()->{
              try {
//模拟等待凉水的时间
                Thread.sleep(999);
                System.out.println("水的温度正好了吃药吧");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }).start();


    }

    public static void shop() {
        System.out.println("出去遛弯");
    }


    public static void main(String[] args) {
        eatMeal();
        shop();
    }

}

运行结果

 总结:同步是根据步骤单线程运行,按套路出牌。 异步是根据现实多线程运行,符合正常人的逻辑思维。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/993346.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号