Saya mencoba memahami apa itu loop acara. Seringkali penjelasannya adalah bahwa dalam suatu perulangan peristiwa, Anda melakukan sesuatu sampai Anda diberi tahu bahwa suatu peristiwa telah terjadi. Anda kemudian menangani acara dan terus melakukan apa yang Anda lakukan sebelumnya.
Untuk memetakan definisi di atas dengan sebuah contoh. Saya memiliki server yang 'mendengarkan' dalam suatu loop peristiwa, dan ketika koneksi soket terdeteksi, data darinya dibaca dan ditampilkan, setelah itu server melanjutkan / mulai mendengarkan seperti sebelumnya.
Namun, peristiwa ini terjadi dan kami mendapat pemberitahuan 'begitu saja' terlalu banyak untuk saya tangani. Anda dapat mengatakan: "Ini bukan 'hanya seperti itu' Anda harus mendaftarkan pendengar acara". Tapi apa itu pendengar acara tetapi fungsi yang karena alasan tertentu tidak kembali. Apakah itu dalam loop itu sendiri, menunggu untuk diberitahu ketika suatu peristiwa terjadi? Haruskah pendengar acara juga mendaftarkan pendengar acara? Di mana itu berakhir?
Acara adalah abstraksi yang bagus untuk dikerjakan, namun hanya abstraksi. Saya percaya bahwa pada akhirnya, pemungutan suara tidak dapat dihindari. Mungkin kita tidak melakukannya dalam kode kita, tetapi level yang lebih rendah (implementasi bahasa pemrograman atau OS) melakukannya untuk kita.
Ini pada dasarnya bermuara pada kode pseudo berikut yang berjalan di suatu tempat yang cukup rendah sehingga tidak menyebabkan kesibukan menunggu:
while(True):
do stuff
check if event has happened (poll)
do other stuff
Ini adalah pemahaman saya tentang keseluruhan ide, dan saya ingin mendengar jika ini benar. Saya terbuka untuk menerima bahwa seluruh gagasan pada dasarnya salah, dalam hal ini saya ingin penjelasan yang benar.
EventSource
dilakukan jika tidak polling input keyboard?