|
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 40
|
|
Как можно представить себе поток?17.08.2014, 13:19. Показов 2592. Ответов 14
Метки нет (Все метки)
Как можно представить себе потоки в С++? В книге конечно разъясняют, но ориентируются видимо не на таких гуманитариев, как я.
Возникают вопросы по поводу: где этот поток вообще находится? Почему одни пишут, что он уже предопределен в операционной системе, а книга говорит, что поток - это классовый объект, но класс, он ведь создается не в операционной системе? Как визуализировать себе эту абстракцию? и так далее... Википедия заводит только в темный лес... Я задавал уже вопросы косвенно относящиеся к потокам, но хоть там и были хорошие ответы, понять их толком у меня не очень получилось, за что извиняюсь. В книге у меня возникает путаница, когда в книге, одними и теми же словами пытаются объяснить разные вещи. Если дадите ссылку на источник для гуманитариев, буду премного благодарен, если же сами разъясните, буду благодарен еще больше. Если будете объяснять, то прошу вас с примерами, вроде "видишь дома, их 4", хотя я не думаю, что если будете объяснять как-то по-сложней у меня возникнут серьезные проблемы. Заранее спасибо.
0
|
|
| 17.08.2014, 13:19 | |
|
Ответы с готовыми решениями:
14
Поток ввода cin работает сам по себе Как можно представить множества как вектора произвольной длины |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 17.08.2014, 13:49 | |||
Сообщение было отмечено Unifan как решение
Решение
3
|
|||
|
|
|
| 17.08.2014, 13:51 | |
|
Процесс - это бизнесмен, у которого есть наемные чернорабочие (потоки). Время от времени перед бизнесменом возникают задачи - "построить дом", "разгрузить машину", в зависимости от её размера на решение её бизнесен нанимает от 1-го до нескольких рабочих.
Саму же задачу каждый бизнесменн получает из "конторы" - планировщика задач.
0
|
|
|
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 40
|
|
| 17.08.2014, 13:54 [ТС] | |
|
Jupiter, скорее всего про потоки данных
Добавлено через 1 минуту -=ЮрА=-, Задачи вроде вывода информации? То есть cout - это поток, то есть чернорабочий? Добавлено через 1 минуту Renji, print(""); - это тоже трубка?
0
|
|
|
|
||
| 17.08.2014, 13:56 | ||
|
1
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 17.08.2014, 14:00 | ||
0
|
||
|
11 / 11 / 3
Регистрация: 08.03.2014
Сообщений: 70
|
|
| 17.08.2014, 14:19 | |
Сообщение было отмечено Unifan как решение
Решение
Если абстрагировать роботу потоков даных то можно вообразить это как водопровод. С одной стороны трубы тот кто подает воду(например объект cout), а с другой потребитель этой воды(например консоль). Тогда самая труба это операция "<< ", а вода это напрмер какая-то переменная. Ну в общем как то так: cout (водопроводчики — подают воду) <<(труба) вода(переменная). В конечном результате потребитель(в даном случае консоль) получит свою воду(переменную в виде текствой информации).
Все это усложняется посредством буфера — это когда вода накапливается в определенном резервуаре, а потом одноразово передается потребителю, вместо того что бы капля за капалей(то есть побайтно) передавать воду(информацию). Но про буфер вам наверное лучше отдельно почитать.(Хотя в приницпе — ничего сложного).
2
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 17.08.2014, 14:24 | ||
|
Что касается внутреннего устройства потока, то он содержит объект-буфер, унаследованный от класса basic_streambuf, который занимается низкоуровневым хранением данных потока, и хранит их в виде последовательностей символов либо в оперативной памяти, либо во внешнем файле.
1
|
||
|
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 40
|
|
| 17.08.2014, 14:26 [ТС] | |
|
Gwini, Когда вы только первый раз начали изучать С++, как вы представляли себе поток?
Добавлено через 1 минуту Mr.X, После разговорах о буферах мне становится страшновато. Стоит ли мне сейчас зацикливаться над этими понятиями, или продолжать читать учебник и уже при изучении полного справочника по С++ накалпливать такие глубокие знания? Возможно, что произойдет такое осинение и я пойму все по мере программирования?
0
|
|
|
11 / 11 / 3
Регистрация: 08.03.2014
Сообщений: 70
|
|
| 17.08.2014, 14:33 | |
|
Unifan, изучать то я начал месяца полтора назад, про ввод/ввывод вообще недавно прочитал. Представлял как трубопроводы, т.к. в книжке картинка была такая
Я прикрепил, если что это с книги С. Праты.
1
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 17.08.2014, 14:33 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 40
|
|
| 17.08.2014, 14:36 [ТС] | |
|
Mr.X, Спасибо за облегчение так сказать.
Gwini, Очень вам благодарен, я обязательно прочту тот материал
0
|
|
|
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 40
|
|
| 18.08.2014, 17:21 [ТС] | |
|
Mr.X, я вот начал перечитывать про потоки и заметил интересную вестч. Поток основан на системе ввода-вывода С++, которая в свою очередь реализована через сложную систему иерархий классов -> потоки такие как cout, cin, cerr, clog - это не более чем грубо говоря "объекты классов ввода-вывода". Можно не забивать себе голову абстракциями и представлять поток, как объект для ввода-вывода данных? Или он все-таки не является объектом?
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 18.08.2014, 17:41 | ||
|
Добавлено через 4 минуты Собственно, класс в С++ - это абстрактный тип данных, т.е. тип, описывающий некоторую абстракцию, а объект этого класса эту абстракцию реализует.
0
|
||
| 18.08.2014, 17:41 | |
|
Помогаю со студенческими работами здесь
15
Можно ли число C представить как разность квадратов двух натуральных чисел?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|