8.3.4 Копирование Потоков

8.3.4 Копирование Потоков

Есть возможность копировать потоки. Например:

cout = cerr;

В результате этого получаются две переменные, ссылающися на один и тот же поток. Гавным образом это бывает полезно для того, чтобы сделать стандартное имя вроде cin ссылающимся на что-то другое (пример этого см. в #3.1.6)

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Обзор потоков

Из книги автора

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


Идентификация потоков

Из книги автора

Идентификация потоков Функции, используемые для получения идентификаторов (ID) и дескрипторов потоков, напоминают те, которые используются для аналогичных целей в случае процессов. • GetCurrentThread — возвращает ненаследуемый псевдодескриптор вызывающего


Состояния потоков

Из книги автора

Состояния потоков На рис. 7.4, взятом из [9] (см. также [38], версию, обновленную Соломоном (Solomon) и Руссиновичем (Russinovych)), представлена схема планирования потоков и показаны их возможные состояния. Кроме того, этот рисунок иллюстрирует результаты работы программы. Такие


Стеки потоков и допустимые количества потоков

Из книги автора

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


Состояния потоков

Из книги автора

Состояния потоков Несколько раз небрежно упомянув о «выполнении», «готовности» и «блокировке», давайте теперь формализуем эти состояния потока.Выполнение (RUNNING)Состояние выполнения (RUNNING) в QNX/Neutrino означает, что поток активно использует ресурсы процессора. В системе SMP


Пулы потоков

Из книги автора

Пулы потоков Другое существенное дополнение в QNX/Neutrino — это понятие пула потоков. Вы будете часто обращать внимание в ваших программах на то обстоятельство, что вам хотелось бы иметь несколько потоков и управлять их поведением в определенных пределах. Например, для


Динамический пул потоков

Из книги автора

Динамический пул потоков Динамический пул потоков не является каким-то специфическим механизмом, продиктованным именно микроядерной архитектурой QNX. Это удачная искусственная конструкция, все определения которой размещены в файле <sys/dispatch.h>. Удивительно не то, что в


10.4.2 Анализ потоков

Из книги автора

10.4.2 Анализ потоков Ричи упоминает о том, что им была предпринята попытка создания потоков только с процедурами "вывода" или только с процедурами обслуживания. Однако, процедура обслуживания необходима для управления потоками данных, так как модули должны иногда ставить


13.1.1. Создание потоков

Из книги автора

13.1.1. Создание потоков Создать поток просто: достаточно вызвать метод new и присоединить блок, который будет исполняться в потоке.thread = Thread.new do # Предложения, исполняемые в потоке...endВозвращаемое значение — объект типа Thread. Главный поток программы может использовать его для


13.1.6. Группы потоков

Из книги автора

13.1.6. Группы потоков Группа потоков — это механизм управления логически связанными потоками. По умолчанию все потоки принадлежат группе Default (это константа класса). Но если создать новую группу, то в нее можно будет помещать потоки.В любой момент времени поток может


13.2. Синхронизация потоков

Из книги автора

13.2. Синхронизация потоков Почему необходима синхронизация? Потому что из-за «чередования» операций доступ к переменным и другим сущностям может осуществляться в порядке, который не удается установить путем чтения исходного текста отдельных потоков. Два и более потоков,


Пул потоков CLR

Из книги автора

Пул потоков CLR Заключительной темой нашего обсуждения в этой плаве, посвященной потокам, будет пул потоков CLR. При асинхронном вызове типов с помощью делегатов (посредством метода BeginInvoke()) нельзя сказать, что среда CLR буквально создает совершенно новый поток. В целях


2.2.1.3 Планирование потоков

Из книги автора

2.2.1.3 Планирование потоков Сервер осведомлен о степени значимости различных потоков и в соответствии с этим назначает для них приоритеты. Например, потоки ввода-вывода получают приоритеты следующим образом: 1. ввод-вывод логической журнализации - наивысший приоритет;2.


ИТЕРАТОРЫ ПОТОКОВ

Из книги автора

ИТЕРАТОРЫ ПОТОКОВ Чтобы шаблоны алгоритмов могли работать непосредственно с потоками ввода-вывода, предусмотрены соответствующие шаблонные классы, подобные итераторам. Например,partial_sum_copy(istream_iterator‹double›(cin), istream_iterator‹double›(), ostream_iterator‹double›(cout, " "));читает файл,


Закрытие потоков

Из книги автора

Закрытие потоков Функции fclose и fcloseall закрывают поток или потоки. Функция fclose закрывает один заданный поток, fcloseall — все потоки, кроме потоков stdin, stdout, stderr, stdaux, stdprn.Если программа не выполняет закрытия потоков, потоки автоматически закрываются, когда программа завершается