Advance JavaScript 17 - asynchronous Javascript
Advance JavaScript 17 - asynchronous Javascript
Kita belajar mengenali asynchronous Javascript supaya kedepan nya Kita tidak bingung ketika belajar callback ,promise, ajak Dan asyn await
Kita mulai pertama Tama bertanya kepada diri Kita sendiri apa itu Javascript?
Mungkin bagi orang awam atau yang baru belajar Javascript , Javascript itu begini
Javascript adalah bahasa pemrograman tingkat tinggi Dan dinamis yang secara umum dapat berjalan pada browser
Itu untuk orang awam yang belum Tau Javascript,untuk Kita karena Kita sudah Masuk kedalam advance JavaScript ,pemahaman tentang Javascript ini bisa jadi lebih komplek
Javascript definisi nya sekarang bisa begini
JavaScript is a single-threaded non-blocking asynchronous and concurrent language
Apa itu maksud nya
1.single threaded
thread adalah urutan eksekusi kode yang dapat dieksekusi secara bebas / independent satu sama lain ,jadi intinya Javascript hanya bisa melakukan satu Hal pada satu waktu tertentu Karena dia single threaded.
Contoh dari single threaded itu begini , JavaScript akan mengeksekusi satu task 1 , maka setelah selesai maka dia akan lanjut ke task 2 jika sudah selesai lanjut task ke 3 ,anggap Saja JavaScript membaca baris perbaris Dan menyelesaikannya.
2.multi threaded
Sedangkan untuk multi threaded
thread nya bisa banyak ,walaupun tetap Saja pekerjaan nya hanya bisa dilakukan satu satu ,namun bisa Saja dikerjakan oleh threaded yang berbeda misal task 1 dilakukan oleh threaded kesatu , task 2 dilakukan oleh threaded ketiga Dan task ke 3 Dan ke 4 dilakukan oleh threaded ke Dua. Jadi dibagi bagi
Blocking & non blocking
1.blocking
Ketika Kita mempunyai satu task/ script pada saat di eksekusi ternyata script ini membutuhkan waktu yang lama ,kalau task satu belum selesai maka dia gabisa Masuk ke task berikutnya.
2.non blocking
Kalau non blocking dia bisa gini ,ketika Kita mengerjakan satu task walaupun belum Beres Kita bisa lanjut ke task berikutnya
Sedangkan asynchronous Dan synchronous
1.synchronous
Jadi synchronous itu seperti biasa mengeksekusi task demi task
2.asynchronous
Sedangkan asynchronous itu begini Kita mengerjakan task yang pertama nah task pertama belum beres tetapi threaded nya bisa pindah ke task yang kedua , task yang kedua belum beres pindah lagi ke task yang kesatu begitu seterus nya sampai task kesatu selesai Dan task kedua selesai Ini misalkan asynchronous yang single threaded.
Sedangkan asynchronous yang multi threaded itu misal Ada 3 threaded Kita bisa mengerjakan task nya bareng bareng .
Konsep ini kalau Kita gabungkan misalkan Kita mempunyai asynchronous yang single threaded itu disebut sesuatu yang concurrency , sedangkan asynchronous ya g multi threaded itu disebut parallelism
Kesimpulan nya
Kalau Kita ngomongin single Dan multi threaded itu Ada hubungan nya dengan lingkungan eksekusi task.
Blocking & non blocking itu teknik ngoding Kita
Dan synchronous Dan asynchronous itu teknik ngoding Kita yang Ada hubungan nya dengan request Kita ke http.
Dan concurrency Dan parallelism itu sama Ada hubungan nya dengan lingkungan eksekusi task.
Jika kalian masih bingunh Mari Kita menyelami lebih dalam pokok nya kalian harus Tau dulu JavaScript itu single threaded Tapi dia juga bisa non blocking Dan bisa asynchronous.
Didalam JavaScript itu Ada sesuatu yang namanya V8 engine atau mesin yang menjalankan Javascript ,yang ditanam kedalam browser yang isinya didalam nya Ada 2 bagian yaitu heap Dan stack
1.heap
Heap itu digunakan untuk alokasi memori ,digunakan juga untuk tempat penyimpanan variabel , function Dan Ada hubungan nya juga dengan hoisting
2.stack
Sedangkan stack itu digunakan untuk pemanggilan function Dan eksekusi script nya
Dan sebetul nya Ada yang namanya web API , callbacks queue Dan event loop
Jika kalian ingin mengetahui lebih detail Dan lebih komplek tentang v8 engine,web API, asynchronous callback , callback queue, Dan event loop, kalian bisa mengunjungi situs dibawah ini untuk melihat simulasinya bagaimana v8 engine,web API Dll ini bekerja .atau kalian bisa search YouTube tentang lingkungan eksekusi Javascript ,atau Cari v8 engine web API, and callback work.
https://latenflip.com/loupe/
By: Philip Robert
Komentar
Posting Komentar