async এবং await এর ব্যবহার

মাল্টিথ্রেডিং এবং কনকারেন্সি - সুইফট প্রোগ্রামিং (Swift Programming) - Computer Programming

233

Swift 5.5 এবং তার পরবর্তী সংস্করণগুলোতে async এবং await ব্যবহার করে কনকারেন্ট কোড লেখা সহজ এবং পাঠযোগ্য করা হয়েছে। এটি অ্যাসিনক্রোনাস কাজগুলিকে আরও সহজভাবে ম্যানেজ করতে দেয়, যেখানে কোড সিঙ্ক্রোনাসের মতোই দেখায়।


async এবং await কী?

  • async: ফাংশনের সংজ্ঞায় async কীওয়ার্ড ব্যবহার করে এটি নির্দেশ করা হয় যে ফাংশনটি অ্যাসিনক্রোনাস। এটি টাস্ক সম্পন্ন করতে সময় নেয় এবং অন্য ফাংশনকে await ব্যবহার করে এটি কল করতে হয়।
  • await: await কীওয়ার্ড ব্যবহার করে async ফাংশনের কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করা হয়।

উদাহরণ: async এবং await ব্যবহার

import Foundation

func fetchData() async -> String {
    // কিছু ডেটা ফেচ করা হচ্ছে, যা অ্যাসিনক্রোনাস হতে পারে
    return "Data fetched"
}

func processData() async {
    let data = await fetchData()
    print(data)
}

// Task-এ async কাজ চালানো হচ্ছে
Task {
    await processData()
}
  • fetchData একটি অ্যাসিনক্রোনাস ফাংশন যা ডেটা রিটার্ন করে।
  • processData ফাংশন await ব্যবহার করে fetchData ফাংশনের কাজ শেষ হওয়া পর্যন্ত অপেক্ষা করে এবং তারপর প্রিন্ট করে।

async এবং await এর সুবিধা

  1. সহজ পঠনযোগ্য কোড: অ্যাসিনক্রোনাস কাজগুলো সিঙ্ক্রোনাস কোডের মতোই দেখতে হয়, যা কোডকে আরও ক্লিন এবং সহজপাঠ্য করে।
  2. ডেটা হ্যান্ডলিং: ডেটা ফেচিং বা API কলের মতো অ্যাসিনক্রোনাস কাজগুলি সঠিকভাবে পরিচালিত হয়।
  3. কনকারেন্সি সহজ করা: কনকারেন্ট কাজের সময় থ্রেড ম্যানেজমেন্ট বা কমপ্লেক্স কনকারেন্ট কোডিং কৌশল ব্যবহার না করেও কাজ করা যায়।

ব্যবহারিক উদাহরণ: API কল

import Foundation

func fetchWeatherData() async throws -> String {
    let url = URL(string: "https://api.weather.com/data")!
    let (data, _) = try await URLSession.shared.data(from: url)
    return String(data: data, encoding: .utf8) ?? "No data"
}

Task {
    do {
        let weatherData = try await fetchWeatherData()
        print(weatherData)
    } catch {
        print("Error fetching data: \(error)")
    }
}
  • এখানে, fetchWeatherData API থেকে ডেটা ফেচ করে, যা একটি অ্যাসিনক্রোনাস ফাংশন।
  • await এবং try ব্যবহার করে এটি চালানো হচ্ছে, এবং ডেটা ফেচ হওয়ার পর সেটি প্রিন্ট করা হচ্ছে।

সংক্ষেপে

Swift-এ async এবং await ব্যবহার করে অ্যাসিনক্রোনাস কোড লেখা সহজ এবং কার্যকরী। এটি ফাংশনাল প্রোগ্রামিং এবং কনকারেন্ট প্রোগ্রামিং-এর জন্য একটি শক্তিশালী টুল, যা কোডকে দ্রুত, সহজ এবং সুগঠিত করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...