У меня есть класс Java, который расширяется от Thread
, и, например, я хочу отправить сообщение в очередь, но хочу повторно использовать Producer
для каждого потока. Не закрывайте его, пока не будет выполнено Thread
.
public class Producer extends Thread {
private final QueueProducer producer;
public Producer() {
Properties props = new Properties();
producer = new QueueProducer(props);
}
public void send(String message) {
producer.send(message);
}
// close?
}
Для этого фрагмента кода, как я могу вызвать метод закрытия?
run()
, так как это метод, который выполняется при запуске потока. - person Ivan   schedule 26.07.2018try-with-resources
внутри блокаrun
. И почемуsend
общедоступен? Вызывают ли другие потоки методы в этом экземпляре Thread? Это может означать неприятности. - person Thilo   schedule 26.07.2018send
не должно быть общедоступным, это вызывается только внутриrun
. Могу ли я повторно использовать один и тот же экземплярQueueProducer
, если я ограничу область внутриrun
? - person ttt   schedule 26.07.2018