Какова цель сброса () в потоках Java?

В Java, flush() метод используется в потоках. Но я не понимаю то, что вся цель использовать этот метод?

fin.flush();

скажите мне некоторые предложения.

110
задан Michele Dorigatti 17 November 2019 в 23:40
поделиться

2 ответа

Из документации метода flush :

Очищает выходной поток и заставляет записывать все буферизованные выходные байты. Общий контракт сброса заключается в том, что его вызов указывает на то, что, если какие-либо ранее записанные байты были буферизованы реализацией выходного потока, такие байты должны быть немедленно записаны в их предполагаемое место назначения.

Буферизация в основном выполняется для повышения производительности ввода-вывода. Подробнее об этом можно прочитать в этой статье: Настройка производительности ввода-вывода Java .

94
ответ дан 24 November 2019 в 03:15
поделиться

К потокам часто обращаются потоки, которые периодически очищают их содержимое и, например, выводят его на экран, отправляют в сокет или записывают в файл. Это делается по соображениям производительности. Промывка выходного потока означает, что вы хотите остановиться, подождать, пока содержимое потока будет полностью передано по назначению, а затем возобновить выполнение с пустым потоком и отправленным содержимым.

4
ответ дан 24 November 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: