如下图展示,请问在同一个异步任务内的异步任务能不能并发?

最后的LoadPicAsync().excute()是三个同一时间执行,还是执行了Load1Async中的再依次执行?如果是依次执行,请修改代码,如何让这三个LoadPicAsync()同步执行。
现在的代码我打印Log发现是执行了Load1Async()中所有的LoadPicAsync(),再执行Load2Async()中的LoadPicAsync();
而我需要的是,三个在Load1Async(),Load2Async(),Load3Async()的OnPostExcute()里面的LoadPicAsync(),同时异步执行。








慕莱坞森
浏览 62回答 1
1回答

狐的传说

是三个线程同时运行还是依次运行,从你给的代码看不出来,要看excute()方法里线程类用的是哪个方法,如果是用.start()方法就是同时运行,如果用run()方法则依次运行。不过用start()方法,那三个线程就和主线程是并行运行,可能产生你的Load1Async Load2Async Load3Async 没有运行完就去运行LoadPicAsync()了。如果LoadPicAsync()离需要用到Load1Async返回的对象,就一定要等Load1Async Load2Async Load3Async是否都运行完了,再运行LoadPicAsync()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java