Section 14/161 menit

14. Kapan Tidak Digunakan

14. Kapan Tidak Digunakan

  • Actor untuk operasi yang sepenuhnya synchronous dan single-threaded: Jika sebuah object hanya pernah diakses dari main thread (contoh: UIView subclass), @MainActor sudah cukup. Membungkusnya dalam custom actor menambah overhead context switching yang tidak perlu.

  • @unchecked Sendable sebagai shortcut: Menambahkan @unchecked Sendable ke class yang tidak benar-benar thread-safe adalah berbahaya. Compiler tidak lagi memeriksa — semua tanggung jawab ada pada programmer. Hanya gunakan ketika kamu benar-benar memahami dan telah memverifikasi synchronization.

  • Mutex untuk operasi async: Jika operasi critical section melibatkan await, gunakan actor, bukan Mutex. Mutex tidak bisa di-await — kamu harus melepas lock sebelum suspend, yang membatalkan tujuan locking itu sendiri.

  • Actor untuk immutable state: Jika state sudah immutable (struct atau let class), actor tidak diperlukan. Immutable state secara otomatis thread-safe.

  • Overly granular actors: Satu actor per field adalah overkill. Group related state dalam satu actor. Terlalu banyak actor berarti terlalu banyak await dan overhead context switch.