我一直在阅读Amazon的AWS开发工具包中的TransferManager来执行S3上传,所提供的API允许非阻塞使用,但是我不清楚底层实现是否实际执行异步I / O。
我对TransferManager的源代码进行了一些阅读,但无法理解所提供的线程ExecutorService
是否被阻塞。
我的问题是,如果此管理器实际上执行异步I / O而不阻塞该执行程序,那么我可以使用应用程序的全局线程池,该线程池用于绑定CPU的东西。那么这实际上是在做异步I / O吗?
经过剖析并尝试理解SDK的源代码后,我得出的结论是,是的,TransferManager
它不是异步工作的,因为它背负着AmazonS3Client.putObject
此类调用,而不会阻塞线程本身,但会循环循环,直到发出HTTP请求为止完成,从而阻止了线程池队列的处理进度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句