Что такое по сути нить - это кусок кода, выполняющийся в цикле, который умеет "замирать" и "отмирать" по команде, как в детской игре. Плюс некоторые свои данные.
Это получается такой живой объект, который можно использовать с нескольких экземплярах. Когда таких несколько, для них нужен специальный объект-координатор (ещё одна нить).
Нужна вам такая абстракция в вашей программе - используйте её. Если грамотно разделить общие зоны, то программа будет похожа на коммунальную квартиру с общими холодильником, ванной, туалетом.
Основные сложности - ваш творческий подход придётся ДОКУМЕНТИРОВАТЬ. Иногда по времени это больше, чем само кодирование.
Отдельный вопрос - тестирование и отладка многопоточных приложений, например в холодильнике может внезапно обнаружиться соседский кот. Понятно, что программа при этом упала, так как об этом вам написали в баг-репорте, но вопрос появления несогласованностей в разделяемых данных, к которым имеют общий доступ десятки нитей, интересный. И, что характерно, ситуация трудно повторима. На практике координатору просто выдаётся задание обнаруживать "кота" заранее и устранять его, перезапуская всех и протоколируя ситуацию, после получения протокола и начинается работа над ошибками…
ЗЫ
Есть ещё алгоритмы и библиотеки, которые по сути своей многопоточны. Этот вариант я не рассматривал, ибо выбора у нас нет…
Другие языки программирования и технологии
Часто ли пользуетесь многопоточностью при разработке своих приложений? Какие плюсы и минусы видите в ней ?
Пользуюсь когда надо. Нынче это необходимо по той причине, что мир ушёл в мультипроцессорность, и не использовать её в наше время это значит не соответствовать времени.
в гуях без неё ну вообще никак: никто не будет пользоваться приложением, которое намертво подвисает при выполнении какой-нибудь затратной задачи
ИМХО больше 2-3 потоков нет смысла создавать. А для рассчётов давно уже есть OpenCL. Процессоры достигли своего пика. 16 ядер/потоков надолго станет стандартом на десктопах. И, вроде как, даже есть математическое обоснование этого.
Похожие вопросы
- Хорошая ли профессия программист?? ? Напишите пожалуйста свои мнение об этой профессии а также плюсы и минусы
- посоветуйте пожалуйста книги по разработке виндовс приложений на C# и
- И все таки с чего начать новичку без опыта (опыта 0)? Выбрал для себя направление по разработке мобильных приложений.
- Хочу узнать плюсы и минусы профессии программиста, хочу учиться на программиста,как востребованы программисты и какие ве
- Плюсы и минусы Ассемблера
- Добрый день. Подскажите пожалуйста плюсы и минусы ассемблера тасм, а так же его преимущества, например перед фасмом?
- Языки программирования плюсы и минусы
- Какие плюсы и минусы в профессии программист?
- Скажите пожалуйста плюсы и минусы независимого дизайнера (фрилансера)?
- Как вы относитесь к флэш-сайтам? Стоит их разрабатывать.? Какие у них плюсы и минусы?