Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Стандартные потоки для ввода, вывода и ошибок

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

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

Примеры [ править ]

Термин «поток» используется во многих подобных случаях:

  • «Потоковое редактирование», как в случае с sed , awk и perl . При потоковом редактировании файл или файлы обрабатываются на месте без необходимости загружать файл (ы) в пользовательский интерфейс. Одним из примеров такого использования является поиск и замена всех файлов в каталоге из командной строки.
  • В Unix и связанных системах, основанных на языке C , поток является источником или приемником данных, обычно отдельных байтов или символов . Потоки - это абстракция, используемая при чтении или записи файлов или при обмене данными через сетевые сокеты . В стандартных потоках три потока предоставляется все программы.
  • Устройства ввода-вывода можно интерпретировать как потоки, поскольку они производят или потребляют потенциально неограниченные данные с течением времени.
  • В объектно-ориентированном программировании входные потоки обычно реализуются как итераторы .
  • На языке Scheme и некоторых других поток - это последовательность элементов данных с отложенной оценкой или задержкой . Поток можно использовать аналогично списку, но более поздние элементы вычисляются только при необходимости. Следовательно, потоки могут представлять бесконечные последовательности и серии . [1]
  • В стандартной библиотеке Smalltalk, а также в других языках программирования поток является внешним итератором . Как и в схеме, потоки могут представлять конечные или бесконечные последовательности.
  • Потоковая обработка - в параллельной обработке , особенно в графической, термин поток применяется как к аппаратному, так и к программному обеспечению . Там он определяет квазинепрерывный поток данных, который обрабатывается на языке программирования потока данных, как только состояние программы соответствует начальному условию потока.

Приложения [ править ]

Потоки могут использоваться в качестве базового типа данных для каналов при межпроцессном взаимодействии .

Другое использование [ править ]

Термин «поток» также применяется к разветвлениям файловой системы , где несколько наборов данных связаны с одним именем файла. Чаще всего есть один основной поток, который составляет обычные данные файла, а дополнительные потоки содержат метаданные . Здесь «поток» используется для обозначения «данных переменного размера», в отличие от метаданных фиксированного размера, таких как расширенные атрибуты , но отличается от «потока», который используется в противном случае, что означает «данные, доступные во времени, потенциально бесконечные».

См. Также [ править ]

  • Bitstream
  • Codata
  • Поток данных
  • Анализ потока данных
  • Flow (компьютерные сети)
  • Сетевой сокет
  • Алгоритм потоковой передачи
  • Потоковое медиа
  • Потоковая обработка

Ссылки [ править ]

  1. ^ SRFI 41: Потоки

Внешние ссылки [ править ]

  • Приблизительный алгоритм L1-разности для массивных потоков данных, 1995 Feigenbaum et al.