Помогите Диме помочь помогать помочь помогать

Плазан

02.07.2016


Вызов метода flush () после записи данных в канал оповещает поток-потребитель, что доступны новые данные. Это полезно с точки зрения производительности, потому что когда буфер пуст, PipedReader использует блокирующий вызов wait () с таймаутом, равным одной секунде. То есть если нс выполнять метода flush(), поток-потребитель может задержать чтение данных не более, чем на секунду. Вызывая метод flush (), производитель сокращает интервал ожидания в потоке-потребителе и позволяет сразу же продолжить обработку данных.


Закрытие соединения.


После завершения обмена данными программный канал должен быть закрыт:


Поток-производитель: закрытие записывающего объекта w.close () ;


Поток-потребитель: закрытие читающего объекта г.close () ;


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


При создании экземпляра класса PipeExampleActivity на экран будет выведена панель EditText, в которой создан объект-наблюдатель (TextWatcher) для отслеживания изменений в содержимом панели. Когда в панель EditText добавляется новый символ, он записывается в программный канал и считывается в объекте TextHandlerTask. Задача-потребитель выполняет бесконечный цикл, в котором читает символы из канала сразу после их записи в канал. Внутренний цикл while блокируется вызовом метода read (), если канал пуст.