Есть вопрос по поводу асинхронной реализации метода, в каких случаях она выгодна? сейчас метод выполняется быстрее чем его реализация, а если синхронизировать с помощью семафор не вижу сильных отличий от одного потока
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
...
}
@Override
public void onResponse(Call call, Response response) {
...
}
});
метод выполняется быстрее чем его реализация- это что имеется ввиду? – Roman-Stop RU aggression in UA Sep 07 '20 at 11:07synchronizedто все потоки встанут в этом месте и будут ожидать ответ на один запрос – Komdosh Sep 07 '20 at 11:12если у меня многопоточная программа и методы отмечены как synchronized, то без обратных вызовов поток будет блокироваться, а точный код. Т.к. ответ на этот вопрос зависит от того какие методы помечены и на каких объектах они вызываются и еще много нюансов. И в зависимости от этого ответдаможет быть как верным, так и нет. В общем случае правильный ответ -это зависит от деталей не включенных в вопрос– Roman-Stop RU aggression in UA Sep 07 '20 at 11:23