(495)

 


Тариф на МГ и МН связь
Введите номер телефона:

Главная » Компьютеры и планшеты » Почему не все приложения многопоточны?

Почему не все приложения многопоточны?

У многопоточности есть преимущество: мы можем запустить одновременно несколько процессов и они будут одновременно выполняться. Так почему бы не сделать все приложения многопоточными? Разве мы не получим от этого прирост производительности? Оказывается, не все так просто. Мы увидим, что может случиться, если у нас будет чрезмерное количество потоков.

Многопоточные приложения требуют много ресурсов. Потоки используют память для хранения данных в контейнерах. Как можно себе представить, количество потоков ограничено объемом доступной памяти. Память в наши дни стоит очень дешево и многие компьютеры оснащены большими объемами памяти. Однако, вы не можете знать заранее, конфигурацию компьютера, на котором будет запущено ваше приложение и что ему хватит памяти. В дополнение, вы не можете полагать, что на компьютере будет запущено только ваше приложение и только вы один будете использовать все системные ресурсы. То, что на компьютере много памяти, не означает, что она должна быть выделена только для вас.

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

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

Фраза «слишком много потоков» является общим термином. Что является «много» для одной системы, может оказаться «мало» для другой. Так как аппаратная конфигурация в значительной степени диктует число допустимых потоков, «слишком много» не поддается вычислению без знания конкретных деталей конфигурации.

Именно поэтому, Microsoft рекомендует использовать небольшое количество потоков при разработке приложений.

Если вам требуется настроить беспроводные сети, прочтите рекомендации от опытных мастеров компьютерного сервиса «ProfiComp». Вам удастся избежать многих распространенных ошибок и настроить беспроводную сеть гораздо быстрее.


10.02.2012