На реальном собеседовании по Java задать вот такой простой вопрос — не лучший способ проверить, насколько кандидат реально разбирается в теме. Поэтому часто добавляют сценарий, чтобы оценить глубину понимания.
Как заставить три потока — T1, T2 и T3 — выполняться строго по очереди, один за другим?
Сценарий:
Ты разрабатываешь пайплайн обработки данных, который состоит из трёх этапов:
Скачивание данных с удалённого источника,
Обработка скачанных данных,
Сохранение результатов в базу данных.
Каждый этап должен выполняться в отдельном потоке, но строго последовательно: второй этап начинается только после завершения первого, а третий — только после второго. Как реализовать это, чтобы гарантировать порядок выполнения?
Подсказка:
Метод Thread.join() позволяет одному потоку дождаться завершения другого. Когда поток вызывает t.join(), он приостанавливает своё выполнение и ждёт, пока поток t не завершится.
👉 Java Portal
Как заставить три потока — T1, T2 и T3 — выполняться строго по очереди, один за другим?
Сценарий:
Ты разрабатываешь пайплайн обработки данных, который состоит из трёх этапов:
Скачивание данных с удалённого источника,
Обработка скачанных данных,
Сохранение результатов в базу данных.
Каждый этап должен выполняться в отдельном потоке, но строго последовательно: второй этап начинается только после завершения первого, а третий — только после второго. Как реализовать это, чтобы гарантировать порядок выполнения?
Подсказка:
Метод Thread.join() позволяет одному потоку дождаться завершения другого. Когда поток вызывает t.join(), он приостанавливает своё выполнение и ждёт, пока поток t не завершится.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
Как
В статье объясняется, что аннотация
Подробности: http://www.java67.com/2023/04/what-is-component-annotation-in-spring.html
👉 Java Portal
@Component в Spring управляет зависимостямиВ статье объясняется, что аннотация
@Component помечает класс как bean, Spring сканирует такие классы и создаёт экземпляры для автосвязывания. @Component — основа для @Service, @Repository и @Controller, важная деталь DI в Spring. Подробности: http://www.java67.com/2023/04/what-is-component-annotation-in-spring.html
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring Boot: используй spring-boot-starter-mail для отправки писем.
Этот стартер включает все необходимые зависимости и настройки, делая процесс отправки писем простым и понятным.
👉 Java Portal
Этот стартер включает все необходимые зависимости и настройки, делая процесс отправки писем простым и понятным.
// Добавь зависимость:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
// Настрой параметры почты в application.properties (или application.yml):
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=my_email@gmail.com
spring.mail.password=my_password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
// Используй JavaMailSender в коде:
...
@Autowired
private JavaMailSender mailSender;
public void sendEmail(String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(text);
message.setFrom("your_email@gmail.com");
mailSender.send(message);
}
...
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤11👍3🔥2