Czytałem o TransferManager w SDK Amazon AWS do robienia wysyłek S3, pod warunkiem, że API pozwala na nie blokowanie użycia, jednak nie jest jasne, czy podstawowa implementacja faktycznie wykonuje asynchroniczne operacje we/wy.Czy program TransferManager w pakiecie AWS SDK dla S3 wykonuje asynchroniczne operacje we/wy?
Zrobiłem trochę czytania na source-code of TransferManager i nie mogę zrozumieć, czy wątki w podanym ExecutorService
są blokowane, czy nie.
Mój problem polega na tym, że jeśli ten menedżer faktycznie wykonuje asynchroniczne operacje we/wy bez blokowania tego executora, mógłbym użyć globalnej puli wątków aplikacji przeznaczonej dla zasobów związanych z procesorem. Czy to faktycznie wykonuje asynchroniczne operacje we/wy lub nie?
Ten wpis na blogu AWS sugeruje inaczej: https://java.awsblog.com/post/Tx2Q9SGR6OKSVYX/Amazon-S3-TransferManager – DGolberg
@DGolberg nie, nie jest, ten post na blogu nie twierdzi inaczej, a poza tym Otrzymałem dowód po kilku godzinach sprawdzania kodu źródłowego i profilowania. Interfejs API narzędzia TransferManager nie jest blokowany, w tym sensie, że przesyła pracę do skonfigurowanej puli wątków, ale wątki w tej puli wątków są blokowane, a zatem niedostępne dla robienia czegokolwiek innego. Prawdopodobnie napiszę o tym artykuł. Dzięki za głosowanie, nie było konieczne. –
@AlexandruNedelcu Rzeczywiście wierzę, że masz rację, to jest asynchroniczne w tym sensie, że jeśli używasz go, możesz kontynuować robienie innych rzeczy w dowolnym wątku, z którego wywołałeś wywołanie API, ale podstawowa implementacja właśnie tworzy kolejny wątek do wykonania pracy. Mieć upvote = D –