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



Download 6,27 Mb.
Pdf ko'rish
bet618/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   614   615   616   617   618   619   620   621   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C


Глава.29 .Примитивные.конструкции.синхронизации.потоков
Некоторые разработчики (в том числе я) не любят ключевое слово 
volatile
и считают, что не стоило вводить его в C#
1
. Мы считаем, что большинству алго-
ритмов не нужен одновременный доступ на чтение и запись поля со стороны не-
скольких потоков. А в большинстве оставшихся алгоритмов можно ограничиться 
обычным доступом к полю, повышающему производительность. А доступ к полю
помеченному как 
volatile
, требуется крайне редко. К примеру, сложно объяснить, 
как применить операцию волатильного чтения к такому вот алгоритму:
m_amount = m_amount + m_amount; // Предполагается, что поле m_amount
// определено как volatile
Обычно целое число может быть удвоено простым сдвигом всех битов на единицу 
влево, и многие компиляторы могут обработать такой код и выполнить указанную 
оптимизацию. Но если пометить поле 
m_amount
ключевым словом 
volatile
, оп-
тимизация станет невозможной. Компилятору придется создать код, читающий 
переменную 
m_amount
из регистра, затем читающий ее еще раз из другого регистра
складывающий два значения и записывающий результат обратно в поле 
m_amount

Неоптимизированный код определенно занимает больше места и медленней рабо-
тает; вряд ли было бы уместно помещать такой кода внутрь цикла.
К тому же C# не поддерживает передачу волатильного поля по ссылке в метод. 
К примеру, если принадлежащее типу 
Int32
волатильное поле 
m_amount
попытается 
вызвать метод 
Int32.TryParse
, компилятор сгенерирует предупреждение:
Boolean success = Int32.TryParse("123", out m_amount);
// Эта строка приводит к сообщению от компилятора:
// CS0420: ссылка на волатильное поле не будет трактоваться как волатильная
Наконец, поля 
volatile
несовместимы со спецификацией CLS, потому что они 
не поддерживаются многими языками (включая Visual Basic).

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   614   615   616   617   618   619   620   621   ...   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