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


асинхронные операции ввода-вывода



Download 6,27 Mb.
Pdf ko'rish
bet534/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   530   531   532   533   534   535   536   537   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

 асинхронные операции ввода-вывода
. 787
Глава 29.
 Примитивные конструкции 
синхронизации потоков
. 820
Глава 30.
 Гибридные конструкции 
синхронизации потоков
. 854


Глава 26.
 Потоки исполнения
В этой главе вы познакомитесь с 
потоками исполнения
, или просто 
потоки
(threads)
1

Мы поговорим о том, почему в Microsoft Windows появилась концепция потоков, 
о тенденциях развития процессоров, о взаимоотношениях потоков общеязыковой 
исполняющей среды (CLR-потоков) и Windows-потоков, о дополнительных за-
тратах ресурсов при использовании потоков, о планировании исполнения потоков 
в Windows, о классах .NET Framework, предоставляющих доступ к свойствам по-
токов, и о многом другом.
В главах пятой части книги объясняется, каким образом Windows взаимодей-
ствует с CLR для формирования архитектуры потоков. Надеюсь, после прочтения 
этих глав вы получите достаточно информации для эффективного применения по-
токов и создания надежных, расширяемых приложений и компонентов, оперативно 
реагирующих на действия пользователя.
для чего Windows поддерживает потоки?
На заре компьютерной эры операционные системы не поддерживали концепцию 
потоков. Точнее, существовал всего один поток исполнения, обслуживающий как код 
операционной системы, так и код приложений. В результате задание, выполнение 
которого требовало времени, препятствовало выполнению других заданий. К при-
меру, во времена 16-разрядной системы Windows обычной была ситуация, когда 
распечатывающее документ приложение приостанавливало работу всей машины. 
Операционная система и остальные приложения просто «зависали». А если вдруг 
в приложении возникала ошибка, которая приводила к бесконечному циклу, она 
вообще порождала массу проблем.
Пользователю оставалось только перезагрузить компьютер, нажав кнопку 
Reset
или выключатель питания. Разумеется, пользователи ненавидели такие ситуации 
(и продолжают ненавидеть до сих пор), потому что все запущенные приложения 
при этом аварийно завершались, а обрабатываемые данные стирались из памяти. 
В Microsoft понимали, что 16-разрядная платформа Windows недостаточно хороша, 
чтобы удержать компанию на плаву в ходе дальнейшего развития компьютерной 
индустрии, поэтому было решено создать новую операционную систему, удовлет-
воряющую потребности как корпораций, так и отдельных пользователей. Она 
должна была быть устойчивой, надежной, расширяемой, безопасной и избавленной 
1
Не путать с потоками ввода-вывода (streams). — 
Примеч

ред
.


725
Ресурсоемкость.потоков
от большинства недостатков своей предшественницы. Ядро этой операционной 
системы впервые было выпущено в составе Windows NT. С годами это ядро пре-
терпело множество обновлений и приобрело дополнительные возможности. По-
следняя версия ядра поставляется с последними версиями операционных систем 
Windows для клиента и сервера.
При разработке нового ядра операционной системы было решено запускать 
каждый экземпляр приложения в отдельном 
процессе
(process). Процессом на-
зывается набор ресурсов, используемый отдельным экземпляром приложения. 
Каждому процессу выделяется виртуальное адресное пространство; это гаранти-
рует, что код и данные одного процесса будут недоступны для другого. Это делает 
приложения отказоустойчивыми, поскольку при таком подходе один процесс не 
может повредить код или данные другого. Код и данные ядра также недоступны 
для процессов; а значит, код приложений не в состоянии повредить код или данные 
операционной системы. Это упрощает работу конечных пользователей. Система 
становится также более безопасной, потому что код произвольного приложения 
не имеет доступа к именам пользователей, паролям, информации кредитной карты 
или иным конфиденциальным данным, с которыми работают другие приложения 
или сама операционная система.
А что с центральным процессором? Что если приложение войдет в бесконечный 
цикл? Если процессор всего один, приложение будет выполнять этот бесконечный 
цикл и не сможет уделять внимание другим операциям. Несмотря на очевидные 
преимущества (неповрежденные данные и более высокая степень безопасности), 
система, как и ее предшественницы, не сможет реагировать на действия конечного 
пользователя. Для решения этой проблемы и были придуманы потоки. Именно 
поток
стал той концепцией, которая предназначена для виртуализации процес-
сора в Windows. Каждому Windows-процессу выделяется собственный поток ис-
полнения (который работает как виртуальный процессор). Если код приложения 
войдет в бесконечный цикл, то блокируется только связанный с этим кодом про-
цесс, а остальные процессы (исполняющиеся в собственных потоках) продолжают 
функционировать!

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   530   531   532   533   534   535   536   537   ...   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