Как заметил Стивен, это возможно, если у вас есть какой-то способ узнать, что метод завершен. Если у вас есть какой-то обратный вызов или слушатель для этого, вы можете использовать что-то вроде счетного семафора:
final Semaphore block = new Semaphore();
//HERE SOMETHING APPROPRIATE TO YOUR API
myAPI.registerListener(new APIListener(){
public void methodADone(){
block.release();
}
});
int permits = 0;
for(Object object: objects){
methodA(object); //this is a non-blocking call and returns immediately
permits++;
}
block.acquire(permits);
Конечно, вам потребуется дополнительная проверка, чтобы удостовериться, что вы выпускаете разрешения для правильных коллекций объектов, в зависимости от того, как работает ваш код и какой механизм API предоставляет, чтобы узнать, завершился ли вызов, но это один из подходов, использоваться.