Чӣ гуна роҳҳои идоракунии истиснои мутақобила ва иҷрои ҳамзамон дар барномаи бисёрсӯроҳӣ вуҷуд доранд?
sobes.tech AI
Ҷавоб аз AI
በብዙ ስር ስር ፕሮግራሚንግ የተለያዩ ሙክሶች ተጠቅመዋል ለመከላከል እና ለመሰረተ ስር የሚያደርጉትን ስራዎች በሚያስተካክሉበት:
-
Mutex (መካከለኛ ማጣሪያ) — እባክህ አንድ ስር ብቻ የሚያከናውን ክፍል የሚያስችል እባክህ እንዲሁም የውሂብ ጥላቻ እንዲቆም ያደርጋል።
-
Semaphore (ሴማፎር) — ቁጥር የሚያስቆም የሚያስተካክል ቁጥር ይወስዳል የሚያስተካክሉትን ስራዎች በአንድ ጊዜ የሚያከናውኑበት ቁጥር እንዲያስቆም።
-
Dispatch Queues (GCD ቅድመ ስርዓቶች በ iOS) — የሚያስተካክሉ የስራ ስርዓቶችን ወይም በቅድመ ስር ወይም በተወሰነ ሁኔታ የሚያስተካክሉበት። የተደራሽ ስርዓት የሚያስተካክሉበት ስራዎች በአንድ በአንድ ይሰራሉ፣ ይህም ማለት ሁሉም ስራዎች በቅድመ ስር ይሰራሉ።
-
NSLock, NSRecursiveLock, NSCondition — ከFoundation የሚመጡ ክፍሎች ለመዝጋት እና ሁኔታዎችን ለመጠባበቅ ይጠቅማሉ።
-
OperationQueue እና Operation — ለስራዎች እና ለማስተካከል የሚያስችሉ ከፍተኛ ደረጃ መንገዶች።
ለማስተካከል የDispatchQueue ምሳሌ:
let serialQueue = DispatchQueue(label: "com.example.serialQueue")
serialQueue.async {
// ይህ ኮድ በተከታታይ ይሰራል፣ ሁሉም ጊዜ ብቻ እንደሚሰራ ያረጋግጣል
print("ስራ 1 እየተፈፀመ")
}
serialQueue.async {
print("ስራ 2 እየተፈፀመ")
}
በዚህ መንገድ፣ ለመካከለኛ ማጣሪያ ብዙ ጊዜ mutex ወይም ቅድመ ስር ቅድሚያዎች ተጠቅመዋል፣ እና ለማስተካከል ሴማፎሮች፣ ሁኔታዎች እና ቅድመ ስር ቅድሚያዎች ተመርጠዋል።