Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet557/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   553   554   555   556   557   558   559   560   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Пул потоков в CLR
Как было отмечено в предыдущей главе, создание и уничтожение потока занимает 
изрядное время. Кроме того, при наличии множества потоков впустую расходуется 


748
Глава.27 .Асинхронные.вычислительные.операции
память и снижается производительность, ведь операционной системе приходится 
планировать исполнение потоков и выполнять переключения контекста. К счастью, 
среда CLR способна управлять собственным пулом потоков, то есть набором готовых 
потоков, доступных для использования приложениями. Для каждого экземпляра 
CLR существует свой пул, используемый всеми доменами приложений, находя-
щимися под управлением экземпляра CLR. Если в один процесс загружаются 
несколько экземпляров CLR, для каждого из них формируется собственный пул.
При инициализации CLR пул потоков пуст. В его внутренней реализации поддер-
живается очередь запросов на выполнение операций. Для выполнения приложением 
асинхронной операции вызывается метод, размещающий соответствующий запрос 
в очереди пула потоков. Код пула извлекает записи из очереди и распределяет их 
среди потоков из пула. Если пул пуст, создается новый поток. Как уже отмечалось, 
создание потока отрицательно сказывается на производительности. Однако по 
завершении исполнения своего задания поток не уничтожается, а возвращается 
в пул и ожидает следующего запроса. Поскольку поток не уничтожается, произво-
дительность не страдает.
Когда приложение отправляет пулу много запросов, он пытается обслужить их 
все с помощью одного потока. Однако если приложение создает очередь запросов 
быстрее, чем поток из пула их обслуживает, создаются дополнительные потоки. 
Такой подход позволяет обойтись при обработке запросов небольшим количеством 
потоков.
Когда приложение прекращает отправлять запросы в пул, появляются незанятые 
потоки, впустую занимающие память. Поэтому через некоторое время бездействия 
(различное для разных версий CLR) поток пробуждается и самоуничтожается, осво-
бождая ресурсы. Это опять отрицательно сказывается на производительности, но в 
данном случае это уже не столь важно, поскольку уничтожаемый поток все равно про-
стаивал, а значит, приложение в данный момент не было особо загружено работой.
Пул потоков позволяет найти компромисс в ситуации, когда малое количество 
потоков экономит ресурсы, а большое позволяет воспользоваться преимуществами 
многопроцессорных систем, а также многоядерных и гиперпотоковых процессоров. 
Пул потоков действует по эвристическому алгоритму. Если приложение должно 
выполнить множество заданий и при этом имеются доступные процессоры, пул 
создает больше потоков. При снижении загрузки приложения потоки из пула 
самоуничтожаются.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   553   554   555   556   557   558   559   560   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish