title: Calling two Java methods asynchronously
body: <p>I have the following code that is making a call to two web services. Both web services return very large responses, so the response is taking quite a long time to return (one web service request is 8 seconds, the other is 12 seconds). The total execution time is 20 seconds as the requests are running in series and not parallel.</p>
  
  <p>Is there any way I can modify my code to request the two web services asynchronously and be able to get the response processed in a time closer to 12 seconds than 20 seconds that it currently takes?</p>
  
  <pre><code>String listOfCities;
  String listOfCountries; 
  
  try {
      listOfCities = service.getListOfCities(host+"service/cities");
      listOfCountries = service.getListOfCountries(host+"service/countries");
  } catch (Exception e) {
      log.error("Failed to read service: " + e);
  }
  </code></pre>
  
  <p>** Thanks for the responses, I feel this isn't a duplicate as I wanted to stop the execution of the two threads I was executing until both received a result from both. The solutions below show that. **</p>