Sobes.tech
Junior — Middle

Proqramlaşdırmada icra axınları və növbə quruluşu arasındakı fərqləri izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

İcra axınları (threads) və növbə strukturları (queues) proqramlaşdırmada müxtəlif anlayışlardır, baxmayaraq ki, onlar çox vaxt paralelliyi təşkil etmək üçün birlikdə istifadə olunur.

İcra axını:

  • Bu, bir proses daxilində ayrı bir idarəetmə axınıdır.
  • Hər bir axın öz yığını və qeydiyyatları ilə malikdir.
  • Axınlar prosessorun müxtəlif nüvələrində paralel şəkildə işləyə bilər.
  • Kodun eyni vaxtda icrası üçün istifadə olunur.

Növbə strukturu:

  • Bu, ümumiyyətlə FIFO (ilk daxil olan, ilk çıxar) olan abstrakt məlumat strukturu.
  • İcrası lazım olan tapşırıqları, mesajları və ya hadisələri saxlamaq üçün istifadə olunur.
  • Məsələn, iOS kontekstində, Dispatch Queue (göndərmə növbəsi) kod bloklarının icrasını idarə edir və ardıcıllıq və ya paralelliyi təmin edir.

iOS nümunəsi:

  • Serial queue — tapşırıqlar tək bir axında ardıcıl şəkildə icra olunur.
  • Concurrent queue — tapşırıqlar paralel şəkildə icra oluna bilər, lakin əlavə etmə ardıcıllığı qorunur.

Beləliklə, axın "icraçı"dır və növbə bu icraçı və ya icraçı qrupları üçün "tapşırıq siyahısı"dır.

Dispatch Queue istifadə nümunəsi:

let queue = DispatchQueue(label: "com.example.myqueue")
queue.async {
    print("Növbədə tapşırıq icra olunur")
}

Burada, növbə, tapşırığın nə zaman və hansı axında icra olunacağını idarə edir.