Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
ovner
7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140
1

Многопоточность

11.05.2013, 01:56. Просмотров 756. Ответов 2
Метки нет (Все метки)

Здраствуйте! Объясните пожалуйста понятными словами что такое многопоточность и для чего она нужна?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2013, 01:56
Ответы с готовыми решениями:

Многопоточность в C++ и C++11
как я понял, многопоточность появилась в С++11 cтандарте. Почитал что его вроде...

Многопоточность
Не особо понимаю мнопоточность в с++. Есть задание типа.... Сделать программу,...

C++ 11 многопоточность
Всем привет!!!Я пытаюсь сделать , подобие прогресс -бара, и столкнулся с...

Многопоточность
Есть задание: Написать и протестировать функцию, которая находит в массиве...

Многопоточность
При добавлении больше 10000 элементов в таблицу на форму форма зависает, как...

2
ProNoooob
77 / 77 / 8
Регистрация: 14.10.2009
Сообщений: 121
11.05.2013, 03:32 2
Многопоточность - паралельное выполнение кода.

Например у тебя программа копирует большой файл и есть кнопка "отмена".

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

В другом варианте ты можешь сделать 2 потока. Один копирует файл, а другой ждет нажатие на кнопку. Если нажатие произошло, то второй поток посылает первому сообщение о завершении операции.
1
Убежденный
Ушел с форума
Эксперт С++
15999 / 7270 / 1180
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
11.05.2013, 08:57 3
Многопоточность - это использование в программе нескольких потоков.
Цели многопоточности могут быть разными:

1) Улучшение производительности.
Если вычислительную задачу можно разделить на независимые части, то имеет смысл
распределить эти части между несколькими потоками. Выигрыш может оказаться
многократным, хотя это зависит от множества факторов. Например, от того, как
потоки "обеспечены" физическими ядрами или процессорами, существует ли между
ними борьба за общие ресурсы и т.д. Параллельность - частный случай данного примера.
Когда все потоки выполняют один и тот же код, это и есть параллельность.
Хотя многопоточность вовсе не означает параллельность.

2) Сохранение времени отклика интерфейса пользователя.
Иногда бывает необходимо выполнить в программе длительную операцию.
Если делать это в том же потоке, который отвечает за интерфейс пользователя (GUI-поток),
программа теряет отзывчивость, начинает "подвисать", перестает реагировать на нажатия
кнопок и т.д. Чтобы этого не просиходило, все вычисления выносятся в отдельный рабочий
поток, а GUI-поток остается свободным.

Не по теме:

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



3) Реализация асинхронности.
Если существует длительная операция, результат которой не требуется немедленно,
можно поручить ее выполнение отдельному потоку. Результат выполнения запрашивается
позже, когда операция будет завершена. Эта схема широко используется, например, в
работе с оборудованием: поток запрашивает запись или чтение, устройство возвращает
статус "pending" (ожидайте), после чего поток может возвратиться к своим "делам".
Когда устройство завершает ввод-вывод, оно сигнализирует потоку о завершении.

4) Безопасность.
Многопоточность также можно использовать в целях безопасности, когда необходимо
отделить код с высокими полномочиями от кода, который пришел из недоверенной среды и
который необходимо запускать в контексте клиента, с низкими правами. Для этого
также может применяться создание отдельного потока.

5) Архитектура.
Многопоточность применяют и там, где необходимо сделать код более простым и
понятным для восприятия. Например, вместо одной длиннющей функции, которая вычисляет
дебет-кредит, обновляет компоненты системы и одновременно синхронизируется с удаленной
базой данных, можно сделать три изолированных друг от друга потока и поручить
каждому свою задачу.

В общем, у многопоточности много лиц и применений, всего на одной странице не написать.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2013, 08:57

Многопоточность
Всем привет, заметил в одном проекте подобный код: struct Counter { ...

Многопоточность
Здравствуйте уважаемые форумчане! Суть проблемы такова, в нижней задаче есть...

Многопоточность
Здравствуйте! Пожалуйста посоветуйте литературу или какие либо статьи для...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru