Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140
1

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

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

Author24 — интернет-сервис помощи студентам
Здраствуйте! Объясните пожалуйста понятными словами что такое многопоточность и для чего она нужна?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2013, 01:56
Ответы с готовыми решениями:

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

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

Многопоточность С++
Добрый вечер! написал вот такую программку. std::vector<std::thread> threads;...

Многопоточность c++
Добрый день! Я только начинаю изучать многозадачность в c++ и у меня возник вопрос о том как...

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

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

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

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

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

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

Не по теме:

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



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

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

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

В общем, у многопоточности много лиц и применений, всего на одной странице не написать.
2
11.05.2013, 08:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2013, 08:57
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru