# Event Loop คืออะไร: อธิบายแบบง่ายที่สุด แบบที่เด็ก 8 ขวบก็เข้าใจ
ในโลกของการเขียนโปรแกรม มีคำศัพท์หนึ่งที่เรามักจะได้ยินกันบ่อยๆ ถ้าคุณเริ่มเข้าสู่วงการนี้ นั่นก็คือ "Event Loop" นั่นเอง แต่ Event Loop มันคืออะไรกันแน่? แล้วมันมีประโยชน์อย่างไรในโลกของการเขียนโปรแกรม? มาพูดกันแบบที่โลกใบเล็กๆ ของเด็กอายุ 8 ขวบก็เข้าใจได้ง่ายๆ เลย
ลองนึกภาพว่า Event Loop เป็นเจ้าพนักงานฝ่ายคิวอย่างนึงในร้านอาหาร โดยมีลูกค้า (Events หรือ เหตุการณ์) เข้ามาแล้วเขาต้องจัดลำดับให้ลูกค้าได้รับการบริการ (Processes หรือ กระบวนการทำงาน) ตามคิวที่ถูกต้อง ตัว Event Loop นี้มันทำงานอยู่เบื้องหลังเพื่อให้แน่ใจว่าทุกอย่างในระบบทำงานได้อย่างลื่นไหล ไม่มีใครถูกลืมหรือไม่ได้รับการช่วยเหลือ
กลับมาที่ร้านอาหาร โปรแกรมคอมพิวเตอร์ของเราก็เหมือนร้านอาหารที่เจ้าพนักงานคิว (Event Loop) ทำหน้าที่จัดกิจกรรมต่างๆ (Events) ที่เกิดขึ้นในระบบคอมพิวเตอร์ของเรา ไม่ว่าจะเป็นการคลิกเมาส์, กดปุ่มคีย์บอร์ด หรือสัญญาณต่างๆ ที่บอกว่าโปรแกรมของเราต้องทำอะไรบางอย่าง
อย่างเช่น คิดว่าเรากำลังเขียนโปรแกรมเล่นเกม ถ้าผู้เล่นกดปุ่ม "กระโดด" ก็มี Event ที่เกี่ยวข้องกับการกระโดดนั้นเกิดขึ้น เจ้าพนักงานคิว (Event Loop) จะเห็นว่าเกิด Event นี้แล้วจะจัดส่งไปยังส่วนที่จะโปรเซส Event นั้น (อาจเป็นโค้ดที่เขียนขึ้นมาเพื่อขยับตัวละครในเกมของเรา) และทุกสิ่งทุกอย่างนี้มันทำงานอย่างรวดเร็วมากจนเราแทบไม่รู้สึกเลยว่ามันกำลังเกิดขึ้น
ประการแรก Event Loop ช่วยให้โปรแกรมของเราสามารถจัดการกับหลายๆ เหตุการณ์ได้พร้อมกัน โดยไม่ต้องรอให้งานหนึ่งเสร็จก่อนที่จะทำงานต่อไป นั่นหมายความว่า Event Loop ช่วยให้โปรแกรมของเรา"ทำหลายอย่างในเวลาเดียวกัน"ได้ ซึ่งเราเรียกแบบนี้ว่า Asynchronous or Non-blocking Programming
ลองนึกกันดูสิว่าถ้าไม่มี Event Loop แล้วโปรแกรมของเรากำลังทำงานกับเหตุการณ์หนึ่งและต้องรอจนกว่าจะเสร็จสิ้น พอมีเหตุการณ์อื่นเกิดขึ้นมันก็จะต้องรอ นั่นอาจทำให้งานล่าช้าและผู้ใช้รู้สึกหงุดหงิดได้
มาดูตัวอย่างง่ายๆ กัน ในภาษา JavaScript เรามักจะเจอกับ Event Loop บ่อยๆ:
console.log('สวัสดี'); // สั่งให้แสดงคำว่า "สวัสดี" ออกมา
setTimeout(function(){
console.log('โลก!');
}, 1000); // สั่งหลังจาก 1 วินาที แสดงคำว่า "โลก!"
console.log('เราอยู่ที่นี่'); // สั่งให้แสดงคำว่า "เราอยู่ที่นี่" ออกมาทันที
ผลลัพธ์ที่ได้จะเป็น:
สวัสดี
เราอยู่ที่นี่
(หลังจาก 1 วินาทีผ่านไป)
โลก!
ในตัวอย่างนี้ Event Loop ช่วยให้การแสดงผล `console.log('โลก!');` ไม่ได้บล็อคการทำงานของสิ่งอื่นๆ ในโปรแกรม เราสามารถทำสิ่งอื่นต่อไปได้เลยในขณะที่รอ
Event Loop เป็นคอนเซปต์พื้นฐานที่สำคัญในการเขียนโปรแกรมแบบ Asynchronous ที่ทำให้โปรแกรมของเราสามารถจัดการกับหลายๆ เหตุการณ์ได้อย่างมีประสิทธิภาพ เข้าใจ Event Loop จะช่วยให้นักพัฒนาสร้างแอปพลิเคชันที่มีประสิทธิภาพและตอบสนองได้เร็วขึ้น
การเรียนรู้เขียนโปรแกรมในแบบที่มีเข้าใจและสามารถนำไปใช้ได้จริงเป็นสิ่งสำคัญ และ Event Loop เพียงแค่หนึ่งในหลายๆ คอนเซปท์ที่นักเรียนจะได้เรียนรู้ในโลกแห่งการเขียนโปรแกรม สำหรับมือใหม่ที่อยากรู้อยากเห็น หรือแม้แต่นักพัฒนาที่ต้องการอัปเดตความรู้ การเลือกที่จะเรียนรู้และพัฒนาทักษะการเขียนโปรแกรมอย่างต่อเนื่องคือก้าวสำคัญสู่ความสำเร็จในอาชีพของพวกเขาเองนั่นเอง!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: event_loop อธิบาย การเขียนโปรแกรม asynchronous_programming javascript คอนเซปต์ กระบวนการ non-blocking event processes concurrency อัตโนมัติ จัดการเหตุการณ์ คิว การทำงานของ_event_loop
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com