我在亚马逊的AWS中读到了有关TransferManager进行S3上传的文章,所提供的API允许非阻塞使用,但我不清楚底层实现是否实际上执行异步I/O。
我在TransferManager源代码上做了一些阅读,我无法理解所提供的ExecutorService中的线程是否被阻塞。
我的问题是,如果这个管理器实际上执行异步I/O而不阻塞该执行器,那么我就可以使用应用程序的全局线程池,该线程池用于处理CPU绑定的内容。那么,这实际上是在执行异步I/O吗?
发布于 2014-09-30 06:50:11
在分析并试图理解SDK的源代码之后,我得出了这样的结论:是的,TransferManager不异步工作,因为它支持AmazonS3Client.putObject和类似的调用,而不是阻塞线程本身,而是在http请求完成之前进入循环,从而阻止线程池队列的处理。
https://stackoverflow.com/questions/26107334
复制相似问题