说起异步,我很多人想到就是同步/异步,同步就是执行1->2->3->4,执行完了然后返回出结果,但是异步想对于1(2异步)->3->4,2异步是可以并行的,并且我这边先返回结果,异步还可以慢慢执行。
想对于同步,对于下载文件,保存数据特别大的时候,用户急需返回结果,但又不影响主流程的情况,可以使用异步。比如把将对方的文件URL下载下来转化成我们自己本地的URL,这种耗时,又不影响主流程的情况下使用异步是最合适的。
我现在接触的异步的线程就两种,一种是自己创建一个异步线程去处理你的程序,其他一种是使用线程池去处理你的程序。当你创建的线程过多时,你可能就要考虑使用线程池去处理你的程序。因为创建线程过多的时候,可能此服务的线程被用尽。使用线程池可以很好管理线程。
但是异步是有一个弊端的,就是如果服务出现问题时,我们在服务中去找日志,在异步中找日志比在同步中找日志要困难一点,好了就总结这么多。