Telegram Group & Telegram Channel
Вопрос на собеседовании

Что такое "backpressure" в реактивных системах на Java, и как его можно обработать?

Ответ ⬇️
"Backpressure" возникает, когда источник данных производит элементы быстрее, чем потребитель может их обработать. В Java для управления этим в реактивных системах используется интерфейс Flow.Subscriber, который позволяет контролировать поток данных через запрос определенного количества элементов с помощью метода request.

🗣 Пример:
import java.util.concurrent.Flow;

public class BackpressureExample {
public static void main(String[] args) {
MyPublisher publisher = new MyPublisher();
MySubscriber subscriber = new MySubscriber();
publisher.subscribe(subscriber);
}
}

class MyPublisher implements Flow.Publisher<Integer> {
@Override
public void subscribe(Flow.Subscriber<? super Integer> subscriber) {
subscriber.onSubscribe(new Flow.Subscription() {
@Override
public void request(long n) {
for (int i = 1; i <= n; i++) {
subscriber.onNext(i);
}
subscriber.onComplete();
}

@Override
public void cancel() {
}
});
}
}

class MySubscriber implements Flow.Subscriber<Integer> {
private Flow.Subscription subscription;

@Override
public void onSubscribe(Flow.Subscription subscription) {
this.subscription = subscription;
subscription.request(5); // Запрашиваем 5 элементов
}

@Override
public void onNext(Integer item) {
System.out.println("Получен элемент: " + item);
}

@Override
public void onError(Throwable throwable) {
System.err.println("Ошибка: " + throwable.getMessage());
}

@Override
public void onComplete() {
System.out.println("Все элементы получены.");
}
}


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😱2🎄1



tg-me.com/Java_per_month/2957
Create:
Last Update:

Вопрос на собеседовании

Что такое "backpressure" в реактивных системах на Java, и как его можно обработать?

Ответ ⬇️
"Backpressure" возникает, когда источник данных производит элементы быстрее, чем потребитель может их обработать. В Java для управления этим в реактивных системах используется интерфейс Flow.Subscriber, который позволяет контролировать поток данных через запрос определенного количества элементов с помощью метода request.

🗣 Пример:

import java.util.concurrent.Flow;

public class BackpressureExample {
public static void main(String[] args) {
MyPublisher publisher = new MyPublisher();
MySubscriber subscriber = new MySubscriber();
publisher.subscribe(subscriber);
}
}

class MyPublisher implements Flow.Publisher<Integer> {
@Override
public void subscribe(Flow.Subscriber<? super Integer> subscriber) {
subscriber.onSubscribe(new Flow.Subscription() {
@Override
public void request(long n) {
for (int i = 1; i <= n; i++) {
subscriber.onNext(i);
}
subscriber.onComplete();
}

@Override
public void cancel() {
}
});
}
}

class MySubscriber implements Flow.Subscriber<Integer> {
private Flow.Subscription subscription;

@Override
public void onSubscribe(Flow.Subscription subscription) {
this.subscription = subscription;
subscription.request(5); // Запрашиваем 5 элементов
}

@Override
public void onNext(Integer item) {
System.out.println("Получен элемент: " + item);
}

@Override
public void onError(Throwable throwable) {
System.err.println("Ошибка: " + throwable.getMessage());
}

@Override
public void onComplete() {
System.out.println("Все элементы получены.");
}
}


Java Learning 👩‍💻

BY Java Learning


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/Java_per_month/2957

View MORE
Open in Telegram


Java Learning Telegram | DID YOU KNOW?

Date: |

How Does Telegram Make Money?

Telegram is a free app and runs on donations. According to a blog on the telegram: We believe in fast and secure messaging that is also 100% free. Pavel Durov, who shares our vision, supplied Telegram with a generous donation, so we have quite enough money for the time being. If Telegram runs out, we will introduce non-essential paid options to support the infrastructure and finance developer salaries. But making profits will never be an end-goal for Telegram.

Spiking bond yields driving sharp losses in tech stocks

A spike in interest rates since the start of the year has accelerated a rotation out of high-growth technology stocks and into value stocks poised to benefit from a reopening of the economy. The Nasdaq has fallen more than 10% over the past month as the Dow has soared to record highs, with a spike in the 10-year US Treasury yield acting as the main catalyst. It recently surged to a cycle high of more than 1.60% after starting the year below 1%. But according to Jim Paulsen, the Leuthold Group's chief investment strategist, rising interest rates do not represent a long-term threat to the stock market. Paulsen expects the 10-year yield to cross 2% by the end of the year. A spike in interest rates and its impact on the stock market depends on the economic backdrop, according to Paulsen. Rising interest rates amid a strengthening economy "may prove no challenge at all for stocks," Paulsen said.

Java Learning from us


Telegram Java Learning
FROM USA