Apa itu Coroutines di Kotlin

Dhe997
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?

Posting Komentar

Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.