news

Sabtu, 13 Juni 2020

Apa itu Coroutines di Kotlin

201904251634218988bc767d2f00065866774ee4b6838b.png
Coroutines merupakan fitur unggulan pada Kotlin yang diperkenalkan pada Kotlin versi 1.1. Saat ini coroutines sudah mencapai versi 1.3.2. Coroutines adalah cara baru untuk menulis kode asynchronous dan non-blocking. Seperti tagline-nya “Don’t block, Keep moving” yang dikenalkan pada saat rilis Kotlin versi 1.3. 

Kenapa coroutines sering disebut sebagai thread yang ringan? Coroutines juga mendefinisikan eksekusi dari sekumpulan instruksi untuk dieksekusi oleh prosesor. Selain itu, coroutines juga memiliki life cycle yang sama dengan thread.
Walaupun coroutines dan threads bekerja dengan cara sama, coroutines jauh lebih ringan dan efisien. 
Jutaan coroutines dapat berjalan pada beberapa threads. Jika dibandingkan dengan threads, coroutines tidak hanya mudah diterapkan, melainkan juga jauh lebih powerful. Kelebihan tersebut terutama berlaku pada lingkungan mobile, di mana setiap milliseconds kenaikan kinerja sangat diperhitungkan. Selain itu, perbedaan lainnya adalah coroutines dikelola oleh pengguna, sedangkan threads dikelola oleh sistem operasi.
Coroutines dijalankan di dalam threads. Satu thread dapat memiliki banyak coroutine di dalamnya. 
Namun, seperti yang sudah disebutkan, hanya satu instruksi yang dapat dijalankan dalam thread pada waktu tertentu. 
Artinya, jika Anda memiliki sepuluh coroutines di thread yang sama, hanya satu dari sepuluh coroutines tersebut yang akan berjalan pada titik waktu tertentu.
Walaupun coroutines dijalankan dalam sebuah thread, perlu diperhatikan bahwa keduanya tak saling terikat. 
Menariknya, kita juga bisa menjalankan bagian dari coroutine dalam sebuah thread, menundanya, kemudian melanjutkannya pada thread yang berbeda. Coroutines cukup fleksibel untuk kita menentukan- Apakah suatu thread akan menjalankan sebuah coroutine atau justru menahannya?