2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Что такое потоки в C++?
Сообщение14.07.2015, 16:26 
Работать с потоками не сложно, но что такое потоки? Знаю, что поток это абстракция. Cin и cout это объекты, или потоки. Эти объекты (потоки) позволяют вводить и выводить данные.

 
 
 
 Re: Что такое потоки в C++?
Сообщение15.07.2015, 08:50 
Вообще сразу надо заметить, что потоки бывают "потоки данных" (streams) и "потоки выполнения" (threads).
Мы здесь говорим о первых.
В целом потоки это действительно некая абстракция цепочки байт. Мы можем положить в цепочку байты (информацию) и извлечь.
Применительно к файлам эта концепция так же сопровождается позицией в файле начиная с которой будут ложится или считываться байты (и при этом позиция автоматически продвигается вперед).
Применительно к сокетам при обмене данными по сети позиции как таковой нет - просто одна сторона получается первым то, что первым положила другая сторона (подобные реализации называют еще "трубами").
Так или иначе поток данных это абстракция вокруг данной концепции и ключевым фактором абстракции является то, что код с ней работающий не обязан знать какой экземпляр потока у него на руках - файлы ли, сокеты ли или что-то иное, он просто ложит байты и/или получает из потока согласно интерфейсу.

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

Я бы сказал что на них не стоит новичку смотреть, как на эталон того как стоит реализовывать потоки.
А так - да, абстракция, наследники ios.

 
 
 
 Re: Что такое потоки в C++?
Сообщение14.11.2015, 14:32 
Аватара пользователя
aa_dav в сообщении #1037289 писал(а):
Я бы сказал что на них не стоит новичку смотреть, как на эталон того как стоит реализовывать потоки.
А так - да, абстракция, наследники ios.

По мне, так на них не стоит смотреть профессионалу =)

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group