7 / 7 / 5
Регистрация: 06.10.2012
Сообщений: 140
|
|
1 | |
Многопоточность11.05.2013, 01:56. Показов 1621. Ответов 2
Метки нет (Все метки)
0
|
11.05.2013, 01:56 | |
Ответы с готовыми решениями:
2
Многопоточность в C++ и C++11 Многопоточность Многопоточность С++ Многопоточность c++ |
79 / 79 / 8
Регистрация: 14.10.2009
Сообщений: 121
|
|
11.05.2013, 03:32 | 2 |
Многопоточность - паралельное выполнение кода.
Например у тебя программа копирует большой файл и есть кнопка "отмена". Ты конечно можешь проверять, нажата ли кнопка через каждые 100 скопированный байта. Но этот подход неэффективен, сложен и не универсален. Одни минусы. В другом варианте ты можешь сделать 2 потока. Один копирует файл, а другой ждет нажатие на кнопку. Если нажатие произошло, то второй поток посылает первому сообщение о завершении операции.
1
|
Ушел с форума
|
|
11.05.2013, 08:57 | 3 |
Многопоточность - это использование в программе нескольких потоков.
Цели многопоточности могут быть разными: 1) Улучшение производительности. Если вычислительную задачу можно разделить на независимые части, то имеет смысл распределить эти части между несколькими потоками. Выигрыш может оказаться многократным, хотя это зависит от множества факторов. Например, от того, как потоки "обеспечены" физическими ядрами или процессорами, существует ли между ними борьба за общие ресурсы и т.д. Параллельность - частный случай данного примера. Когда все потоки выполняют один и тот же код, это и есть параллельность. Хотя многопоточность вовсе не означает параллельность. 2) Сохранение времени отклика интерфейса пользователя. Иногда бывает необходимо выполнить в программе длительную операцию. Если делать это в том же потоке, который отвечает за интерфейс пользователя (GUI-поток), программа теряет отзывчивость, начинает "подвисать", перестает реагировать на нажатия кнопок и т.д. Чтобы этого не просиходило, все вычисления выносятся в отдельный рабочий поток, а GUI-поток остается свободным. Не по теме: Программистов, которые запихивают вычисления в GUI-поток, нужно бить по рукам 3) Реализация асинхронности. Если существует длительная операция, результат которой не требуется немедленно, можно поручить ее выполнение отдельному потоку. Результат выполнения запрашивается позже, когда операция будет завершена. Эта схема широко используется, например, в работе с оборудованием: поток запрашивает запись или чтение, устройство возвращает статус "pending" (ожидайте), после чего поток может возвратиться к своим "делам". Когда устройство завершает ввод-вывод, оно сигнализирует потоку о завершении. 4) Безопасность. Многопоточность также можно использовать в целях безопасности, когда необходимо отделить код с высокими полномочиями от кода, который пришел из недоверенной среды и который необходимо запускать в контексте клиента, с низкими правами. Для этого также может применяться создание отдельного потока. 5) Архитектура. Многопоточность применяют и там, где необходимо сделать код более простым и понятным для восприятия. Например, вместо одной длиннющей функции, которая вычисляет дебет-кредит, обновляет компоненты системы и одновременно синхронизируется с удаленной базой данных, можно сделать три изолированных друг от друга потока и поручить каждому свою задачу. В общем, у многопоточности много лиц и применений, всего на одной странице не написать.
2
|
11.05.2013, 08:57 | |
11.05.2013, 08:57 | |
Помогаю со студенческими работами здесь
3
Многопоточность C++ 11 многопоточность Многопоточность Многопоточность Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |