I have created this small project to show what I want to do, but in reality it will be used in a large application which uses about 60 different threads.
I have two classes
public class Main {
    public static void main(String[] args) {
        Http http = new Http();
        Thread threadHttp = new Thread(http, "httpThread1");
        threadHttp.start();
        http.getPage("http://google.com"); // <-- This gets called on 
                                           // the main thread, 
                                           //I want it to get called from the
                                            // "httpThread1" thread
    }
}
and
public class Http implements Runnable {
    volatile OkHttpClient client;
    @Override
    public void run() {
        client = new OkHttpClient.Builder().readTimeout(10, TimeUnit.SECONDS).retryOnConnectionFailure(true).build();
    }
    public void getPage(String url) {
        Request request = new Request.Builder().url(url).build();
        try {
            Response response = client.newCall(request).execute();
            System.out.println(response.body().string());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
From the main thread, I want to be able to call the getPage method but have it execute on the httpThread1 that we started and initialized OkHttpClient client
Is this possible? how can it be done?
 
     
     
    