备战2022春招或暑期实习,祝大家每天进步亿点点!Java并发编程Day3
本篇总结的是 如何在Java中避免创建不必要的对象,后续会每日更新~
关于《我们一起学Redis》、《我们一起学HarmonyOS》等知识点可以查看我的往期博客
相信自己,越活越坚强,活着就该逢山开路,遇水架桥!生活,你给我压力,我还你奇迹!目录
1、同步
2、异步
3、什么时候使用同步或异步
4、注意事项
1、同步
同步指的的是串行,从调用方的角度来看,同步需要等待结果,才能继续运行。比如Java中常见的阻塞IO,等待返回结果的接口请求等。
举个栗子:
平时做饭的时候,先切菜,然后切好菜了就会淘米煮饭,如果你再这里等着饭煮好了再去做菜,这就是同步;但是这样你肯定会饿肚子。
2、异步
异步指的是并行,从调用方的角度来看,异步不需要等待结果,而是调用之后继续运行后续程序。比如Java中的Nio,多线程技术等。
举个栗子:
还是做饭,当你淘米煮饭的时候,你不在这里等待,而是继续去炒菜,等你的饭好了之后电饭煲会通知你,这就是异步。
3、什么时候使用同步或异步
同步使用场景:
当调用方需要获取被调用方的返回结果才能继续进行后续操作的时候,往往就会使用同步方式。比如接口调用中获取token,等待系统账户密码验证的登录结果等。
异步使用场景:
当调用方对返回结果不依赖,当下继续执行不依赖返回结果,并且调用的操作比较耗时,就要考虑使用异步方式。比如耗时较长的IO操作,就要考虑使用非阻塞IO;比如tomcat的异步Servlet等。
4、注意事项
我们通过充分利用多核CPU的优势提供运行效率,也就是通过多线程来实现异步,但是单核CPU是下多线程并不能带来性能提升。