title: Is it thread-safe to make calls to OkHttpClient in parallel?
body: <p>I have several threads that run at the same time and some of them need to request data from Internet. Do I need to care about synchronization of their access to <code>OkHttpClient</code> singleton?</p>
  <p>For example,</p>
  <h4>Thread 1</h4>
  <pre><code>...
  Request request = new Request.Builder()
      .url(&quot;http://hell.com/siners.txt&quot;)
      .build();
  
  client.newCall(request).enqueue(new Callback() {
    @Override public void onFailure(Call call, IOException e) {
      e.printStackTrace();
    }
  
    @Override public void onResponse(Call call, Response response) throws IOException {
      try (ResponseBody responseBody = response.body()) {
        if (!response.isSuccessful()) throw new IOException(&quot;Unexpected code &quot; + response);
        // Some work in Thread1
      }
    }
  </code></pre>
  <h4>Thread2</h4>
  <pre><code>...
  Request request = new Request.Builder()
      .url(&quot;http://hell.com/slutList.txt&quot;)
      .build();
  
  client.newCall(request).enqueue(new Callback() {
    @Override public void onFailure(Call call, IOException e) {
      e.printStackTrace();
    }
  
    @Override public void onResponse(Call call, Response response) throws IOException {
      try (ResponseBody responseBody = response.body()) {
        if (!response.isSuccessful()) throw new IOException(&quot;Unexpected code &quot; + response);
        // Some work in Thread2
      }
    }
  </code></pre>
  <p>Can simultaneous <code>newCall().enque()</code> or <code>newCall().execute()</code> be potentially dangerous?</p>