Sobes.tech
Junior

რა არის სინქრონული და ასინქრონული მოთხოვნების განსხვავება?

sobes.tech AI

პასუხი AI-სგან

සංක්‍රිය ඉල්ලීම් වර්තමාන ක්‍රියාත්මක නාලිකාව බ්ලොක් කරයි පිළිතුරු ලැබෙන තුරු. අසංක්‍රිය ඉල්ලීම් නාලිකාව බ්ලොක් නොකරයි; පිළිතුර ක්‍රියාවලිය අවසන් වීමෙන් පසුව, සාමාන්‍යයෙන් callback, delegate හෝ closure යන යන්ත්‍රණය මඟින් සැලසෙයි.

ලක්ෂණය සංක්‍රිය ඉල්ලීම අසංක්‍රිය ඉල්ලීම
නාලිකාව බ්ලොක් කිරීම ඔව් නැත
UI-ප්‍රතික්‍රියාව UI බ්ලොක් කළ හැකියි UI බ්ලොක් නොකරයි
ක්‍රියාවලිය සංකීර්ණතාව සරලයි වැඩි සංකීර්ණ (අවස්ථා කළමනාකරණය)
iOS භාවිතය අඩු, කෙටි කාර්යයන් සඳහා පමණක්, මූලික නාලිකාවේ නොවේ කැමති, විශේෂයෙන් දිගු මෙහෙයුම් සඳහා

URLSession භාවිතා කර අසංක්‍රිය ඉල්ලීමේ උදාහරණයක්:

// URLSessionTask නිර්මාණය
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // මෙම බ්ලොක්කය අසංක්‍රියව ක්‍රියාත්මක වේ ඉල්ලීම අවසන් වූ පසු
    if let error = error {
        print("දෝෂය: \(error.localizedDescription)")
        return
    }

    // ලැබුණු දත්ත සැකසීම
    if let data = data {
        print("දත්ත ලැබී ඇත, බයිට්: \(data.count)")
    }

    // UI යාවත්කාලීන කිරීම මූලික නාලිකාවේ සිදු කළ යුතුය
    DispatchQueue.main.async {
        // UI යාවත්කාලීන කිරීම
    }
}

// කාර්යය ආරම්භ කිරීම
task.resume()

// මෙහි කේතය තත්පරිකව ක්‍රියාත්මක වේ, ඉල්ලීම අවසන් වීමක් බලාපොරොත්තු නොවී
print("ඉල්ලීම යොමු කරන ලදි")