Apa perbedaan antara coroutine dan utas?
Apa perbedaan antara coroutine dan utas?

Video: Apa perbedaan antara coroutine dan utas?

Video: Apa perbedaan antara coroutine dan utas?
Video: Kotlin Coroutines: Explore what are coroutines in kotlin. Threads vs. Coroutines 2024, November
Anonim

Satu yang penting perbedaan antara benang dan coroutine Apakah itu benang biasanya dijadwalkan terlebih dahulu sementara coroutine tidak. Karena benang dapat dijadwal ulang kapan saja dan dapat dijalankan secara bersamaan, program menggunakan benang harus berhati-hati tentang penguncian.

Dengan cara ini, apa coroutine yang dijalankannya di utas yang berbeda?

coroutine tidak punya apa-apa melakukan dengan Utas . Coroutine metode bisa dieksekusi sepotong demi sepotong dari waktu ke waktu, tetapi semua proses masih dilakukan oleh satu induk Benang . Jika Anda memiliki lebih dari satu CPU logis, banyak utas dieksekusi pada berbeda CPU.

Selain itu, apa itu utas dalam pemrograman? A benang dalam ilmu komputer adalah kependekan dari benang dari eksekusi. Utas adalah cara untuk program untuk membagi (disebut "split") dirinya menjadi dua atau lebih secara bersamaan (atau pseudo-simultan) menjalankan tugas.

Yang juga perlu diketahui adalah, apa itu Coroutine yang dijalankan di utas baru?

Apa yang terjadi dengan coroutine apakah itu? Lari di utama benang setiap frame dan dieksekusi sampai menghasilkan - maka itu akan ditangguhkan sampai kondisi hasil terpenuhi. A benang secara efektif berlari pada saat yang sama dengan kode lain (ini hanya berlaku jika Anda memiliki banyak inti).

Kapan saya harus menggunakan runBlocking?

Sebenarnya kamu gunakan runBlocking untuk memanggil fungsi penangguhan dalam kode "pemblokiran" yang jika tidak, tidak akan dapat dipanggil di sana atau dengan kata lain: Anda menggunakan itu untuk memanggil fungsi penangguhan di luar konteks coroutine (dalam contoh Anda, blok yang diteruskan ke async adalah fungsi penangguhan).

Direkomendasikan: