Swift Academy · Pelajaran

async let dan Task Anak Konkuren

Menjalankan pekerjaan async yang independen secara bersamaan dengan binding async let.

Pelajaran 3 dari 412 langkah

async let dan Task Anak Konkuren adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Selamat Datang

`async let` menjalankan beberapa operasi asinkron secara bersamaan—semuanya langsung dimulai, dan `await` menunggu hasilnya saat diperlukan.

Berurutan vs Bersamaan

```swift // Sequential — slow: let a = try await fetchA() let b = try await fetchB() // Concurrent with async let — fast: async let a = fetchA() async let b = fetchB() let (resultA, resultB) = try await (a, b) ```

Sintaks async let

```swift async let title = fetchTitle(id) async let author = fetchAuthor(id) async let content = fetchContent(id) let article = Article( title: try await title, author: try await author, content: try await content ) ```

Semua atau Tidak Sama Sekali

Jika salah satu pengikatan `async let` melemparkan kesalahan, kesalahan tersebut diteruskan. Sistem secara otomatis membatalkan tugas-tugas saudaranya.

async let dalam Perulangan

```swift var results: [Data] = [] await withTaskGroup(of: Data.self) { group in for url in urls { group.addTask { try await URLSession.shared.data(from: url).0 } } for await data in group { results.append(data) } } ```

TaskGroup

```swift await withTaskGroup(of: Int.self) { group in for i in 1...5 { group.addTask { i * i } } var squares: [Int] = [] for await square in group { squares.append(square) } print(squares.sorted()) // [1,4,9,16,25] } ```

ThrowingTaskGroup

```swift try await withThrowingTaskGroup(of: User.self) { group in for id in ids { group.addTask { try await fetchUser(id: id) } } for try await user in group { process(user) } } ```

Pohon Konkurensi Terstruktur

`async let` dan TaskGroup membentuk pohon tugas. Tugas induk menunggu semua tugas anak selesai. Membatalkan tugas induk akan membatalkan semua tugas anak.

Kapan Menggunakan async let vs TaskGroup

• `async let` — jumlah operasi bersamaan yang tetap sudah diketahui saat kompilasi • `TaskGroup` — jumlah tugas yang dinamis, misalnya untuk memproses array

Membatasi Konkurensi dengan TaskGroup

```swift await withTaskGroup(of: Void.self) { group in let concurrency = 4 var running = 0 for url in urls { if running >= concurrency { await group.next() } group.addTask { await process(url) } running += 1 } } ```

Pemeriksaan Singkat

Apa yang terjadi pada tugas-tugas saudara `async let` jika salah satunya melemparkan kesalahan?

Ringkasan

Poin penting: • `async let x = asyncWork()` — langsung dimulai dan berjalan bersamaan • `try await x` — menunggu hasilnya • Semua atau tidak sama sekali: kegagalan membatalkan tugas-tugas saudara • `withTaskGroup` — kumpulan tugas bersamaan yang dinamis • Konkurensi terstruktur = pengelolaan tugas anak secara otomatis Berikutnya: Aktor.
Gratis untuk memulai

Belajar Swift dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
122
Pelajaran
409

Pertanyaan yang Sering Diajukan

Apakah pelajaran “async let dan Task Anak Konkuren” gratis?

Ya — teks lengkap “async let dan Task Anak Konkuren” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “async let dan Task Anak Konkuren”?

Menjalankan pekerjaan async yang independen secara bersamaan dengan binding async let. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “async let dan Task Anak Konkuren” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Sintaks async/await dan Memanggil Fungsi Async
  2. Task dan Pembatalan Task
  3. async let dan Task Anak Konkuren
  4. Actor: Melindungi Keadaan Bersama yang Dapat Diubah
← Kembali ke Swift Academy