Sobes.tech
Junior — Middle

Тафовутҳои байни ҷараёни иҷро ва сохтори навбат дар барномасозӣ-ро шарҳ диҳед.

sobes.tech AI

Ҷавоб аз AI

Тонҳои иҷро (threads) ва структураҳои навбатҳо (queues) мафҳумҳои гуногун дар барномаинависӣ мебошанд, ҳарчанд онҳо аксар вақт барои ташкил кардани параллелизм дар якҷоягӣ истифода мешаванд.

Тонҳои иҷро:

  • Ин як ҷараёни мустақил дар дохили раванд аст.
  • Ҳар як тон дорои стеки худ ва сабтҳо мебошад.
  • Тонҳо метавонанд дар ядроҳои гуногуни протсессор параллелӣ иҷро шаванд.
  • Барои иҷрои ҳамзамон код истифода мешаванд.

Структураи навбат:

  • Ин як структураи маълумотии абстрактӣ, одатан FIFO (аввал омад, аввал баромад) мебошад.
  • Барои нигоҳ доштани вазифаҳо, паёмҳо ё ҳодисаҳо, ки бояд коркард шаванд, истифода мешавад.
  • Дар контексти iOS, масалан, Dispatch Queue (навбат барои тақсимот) идора мекунад, ки блокҳои кодро иҷро кунад ва пайдарпайӣ ё параллелизмро таъмин кунад.

Масалан дар iOS:

  • Serial queue — вазифаҳо ба таври пайдарпай дар як тон иҷро мешаванд.
  • Concurrent queue — вазифаҳо метавонанд параллелӣ иҷро шаванд, аммо тартиби илова нигоҳ дошта мешавад.

Аз ин рӯ, тон — ин "воситакунанда", ва навбат — "феҳристи вазифаҳо" барои он ё гурӯҳи воситакунандагон.

Масалан дар истифодаи Dispatch Queue:

let queue = DispatchQueue(label: "com.example.myqueue")
queue.async {
    print("Иҷрои вазифа дар навбат")
}

Ин ҷо, навбат идора мекунад, ки кай ва дар кадом тон вазифа иҷро шавад.