Учитывая следующий класс:Как реализовать фиксированный коэффициент опроса с помощью ScheduledExecutorService?
public class Poller implements Runnable {
public static final int CORE_POOL_SIZE = 4;
public boolean running;
public ScheduledExecutorService ses;
public void startPolling() {
this.ses = Executors.newScheduledThreadPool(CORE_POOL_SIZE);
this.ses.scheduleAtFixedRate(this, 0, 1, TimeUnit.SECONDS);
}
public void run() {
running = true;
// ... Do something ...
running = false;
}
}
ScheduledExecutorService
имеет основной размер пула потоков 4, но будет больше, чем один голосующий нить когда-либо будет создан? Так как this
передано в scheduleAtFixedRate
, значит ли это, что будет только один поток - или что-то более сложное происходит за кулисами?
и 2 бонус вопросы: -
- Если
running
бытьstatic
? - Является
CORE_POOL_SIZE
избыточным?
работа не может быть статичной –
Пожалуйста, объясните ... –
running указывает, работает ли этот конкретный поток, поэтому он должен быть переменной экземпляра - не может быть статическим. –