Форум программистов, компьютерный форум CyberForum.ru

Потоки. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
Fedis
608 / 88 / 2
Регистрация: 08.07.2010
Сообщений: 1,893
11.07.2010, 12:37     Потоки. #1
Можете сказать что такое потоки и привести примеры на C++.
P.S не надо давать ссылку на википедию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2010, 12:37     Потоки.
Посмотрите здесь:

Потоки C++
Потоки с++ C++
потоки.. C++
потоки C++
потоки C++
Потоки C++
Потоки C++
Потоки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HIMen
 Аватар для HIMen
4103 / 1352 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
11.07.2010, 12:43     Потоки. #2
Цитата Сообщение от i.pas Посмотреть сообщение
Можете сказать что такое потоки
Части программы, которые выполняются параллельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
11.07.2010, 13:11     Потоки. #3
Чтобы нормально понять, что такое поток, надо хотя бы приблизительно понимать, как устроена работа современных многозадачных систем.

Вкратце примерно так. Каждая задача (процесс) работает в своём, так называемом, виртуальном пространстве памяти. Т.е. операционная система обеспечивает работу каждого процесса таким образом, как будто бы он исполняется один на машине. Процесс не имеет возможности залезть в память другого исполняемого процесса (на самом деле может через разделяемую память, но в данном месте это не важно).

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

Зачем это нужно? Допустим, у тебя есть две независимых вычислительных задачи. Самый простой искусственный вариант - есть два больших массива и нужно инкрементировать каждый элемент каждого массива. Эти две вещи можно сделать параллельно, поскольку они являются независимыми. В этом случае можно использовать поток. В основном процессе у тебя пойдёт инкрементация элементов первого массива, а в потоке - инкрементация элементов второго массива. Если на машине установлен один одноядерный процессор, то такой подход выигрыша в скорости не даст. Но если два процессора (или двухядерный процессор), то две жти операции будут исполняться параллельно, а потому, условно можно сказать, что всё это дело исполнится в два раза быстрее
Yandex
Объявления
11.07.2010, 13:11     Потоки.
Ответ Создать тему
Опции темы

Текущее время: 23:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru