![Java多线程编程核心技术(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/745/42637745/b_42637745.jpg)
上QQ阅读APP看书,第一时间看更新
1.17 同步与异步
同步是指需要等待处理的结果才能继续运行。比如a方法调用b方法,直到b方法调用结束后才能调用c方法。
异步是指不需要等待处理的结果还能继续运行就是异步。比如a方法调用b方法,不需要b方法调用结束就能继续调c方法。
如果有四个任务,分别需要耗时1s,2s,3s,1s,采用同步和异步两种方式运行,在执行时间上有着很大差别。
同步执行效率慢的原因所有任务按顺序执行,如图1-74所示。
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-74.jpg?sign=1738797908-fmrVykp2nDjHUya5gTQYe0gpfe13qcOj-0-0fbfcb24c13b6f3f3e4f7a52edd36b43)
图1-74 同步执行
执行总时间为1+2+3+1=7s。
![](https://epubservercos.yuewen.com/204B22/22139293909121606/epubprivate/OEBPS/Images/1-75.jpg?sign=1738797908-WaPU3j3uJ5pVT4Vp29kz862UpSsxKxM4-0-1e7607dfef61d87e98713687ef10a17d)
图1-75 异步执行
采用多线程以异步方式执行效率快的原因是所有任务同时执行,如图1-75所示。
执行总时间为3s,取决于单个任务的最长时间。