Я делаю несколько веб-запросов из приложения Android, над которым я работаю.Я хочу, чтобы все эти запросы обрабатывались по одному в том порядке, в котором они поступают. Мой код ниже делает это?
Способ, которым я читаю и понимаю синхронизированный, состоит в том, что из всех потоков, которые я раскручиваю, только один может быть одним из перечисленных ниже способов одновременно.Например, если пользователь пытается опубликовать PostPhoto в одном потоке, а затем сразу же получить getData в другом потоке, поток getData должен будет дождаться завершения потока postPhoto, прежде чем он начнет получать данные.Поскольку все мои веб-запросы проходят через этот класс, и все методы синхронизируются, это означает, что они по существу поставлены в очередь правильно?
public class Controller {
public synchronized static String getData(String url, String limit) { ... }
public synchronized static String postPhoto(String filepath, int server_id) { ... }
public synchronized static InputStream getPhoto(String thumbnailPath) { ... }
public synchronized static String createIncident(String name, String description) { ... }
public synchronized static String updatePerson() { ... }
synchronized static boolean verifyConnection(String response) { ... }
}
РЕДАКТИРОВАТЬ:
Я, вероятно, должен был иметьупомянул, что, хотя некоторые из вышеупомянутых методов называются createIncident или updatePerson, все они ТОЛЬКО выполняют httprequests, код внутри всех методов, как правило, одинаков за исключением важных незначительных изменений.В других частях моего кода я раскручиваю потоки для вызова этих методов, и это та часть, о которой я спрашивал.Поскольку эти потоки вызывают эти методы, поток B, который вызывает getData, должен будет ждать, пока поток A не завершит свою часть postPhoto.