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),
@MainActorsudah cukup. Membungkusnya dalam custom actor menambah overhead context switching yang tidak perlu. -
@unchecked Sendablesebagai shortcut: Menambahkan@unchecked Sendableke 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
letclass), 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
awaitdan overhead context switch.