Volatile Anahtar Kelimesi

Volatile anahtar kelimesi ile bir alanın peş peşe çalışan iş parçacıkları (thread) tarafından değiştirilebileceği belirtilir. Volatile tanımlanan alanlar, sadece tek bir iş parçacığının eriştiğini kabul eden derleyici iyileştirmelerinden (compiler optimizations) hariç tutulurlar.

Volatile kelimesi çoklu iş parçacıkları tarafından lock ifadesi kullanılmadan erişilecek alanlara erişimi serileştirmek, sıraya sokmak (serialize) için kullanılır…

    1 using System;

    2 using System.Collections.Generic;

    3 using System.Text;

    4 

    5 using System.Threading;

    6 

    7 namespace Volatile_Keyword

    8 {

    9     class Program

   10     {

   11         public static int result;

   12         public static volatile bool finished;

   13 

   14         static void Thread2()

   15         {

   16             result = 143;

   17             finished = true;

   18         }

   19 

   20         static void Main(string[] args)

   21         {

   22             finished = false;

   23             // Thread2() metodunu yeni bir threadde çalıştır.

   24             new Thread(new ThreadStart(Thread2)).Start();

   25             // Thread2 nin bir sonuç bulduğunu finished değerini true olarak ayarlarak belirtmesini bekle

   26             for (; ; )

   27             {

   28                 if (finished)

   29                 {

   30                     Console.WriteLine("Sonuç = {0}", result);

   31                     return;

   32                 }

   33                 else

   34                 {

   35                     Console.WriteLine("Bekle…");

   36                 }

   37             }

   38         }

   39     }

   40 }

Görüldüğü gibi yukardaki örnekte volatile ile tanımlanmış boolen alan bir thread içinde değiştiriliyor…

Klavyeleriniz şen ola…

Yazı oluşturuldu 141

Bir yanıt yazın

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön