Ниже мой интерфейс -Как запустить фоновый поток, когда приложение запускается
public interface IClient {
public String read(ClientInput input);
}
Это моя реализация интерфейса -
public class TempClient implements IClient {
@Override
public String read(ClientInput input) {
}
}
Ниже мой завод код -
public class TempClientFactory {
public static IClient getInstance() {
// new TempScheduler().startScheduler();
return ClientHolder.INSTANCE;
}
private static class ClientHolder {
private static final TempClient INSTANCE = new TempClient();
}
}
Теперь у меня есть фабрика, которая получает экземпляр TempClient
как это, поэтому клиент будет использовать наш завод, как показано ниже, делая звонок на наш код.
IClient client = TempClientFactory.getInstance();
client.read(input);
А ниже мой код фона нить -
public class TempScheduler {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public void startScheduler() {
final ScheduledFuture<?> taskHandle = scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
try {
callServers();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}, 0, 500, TimeUnit.SECONDS);
}
}
//... some code
}
Постановка задачи: -
- Теперь у меня есть фоновый поток, который будет работать под управлением за сценой, которая извлекает данные из URL, анализирует его и сохраняет в переменной. Теперь я хочу, как только наш клиент начнет звонить, чтобы использовать наш код, используя фабрику, я хочу, чтобы фоновый поток начал работать. Поэтому я подумал, что могу наложить фоновый вызов на мой заводский метод
getInstance
. Это подходящее место для размещения?