Lập trình hướng sự kiện
Trong lập trình máy tính, lập trình hướng sự kiện, hay chính xác là lập trình dẫn động bằng sự kiện (tiếng Anh: Event-driven programming), là một mẫu hình lập trình trong đó luồng của chương trình được quyết định bởi các sự kiện như hành động người dùng (nhấp chuột, bấm phím), đầu ra cảm biến, hoặc thông điệp từ các chương trình hoặc các luồng. Lập trình hướng sự kiện là mô hình chi phối được sử dụng trong giao diện người dùng đồ họa và các ứng dụng khác (ví dụ: ứng dụng web JavaScript) tập trung vào việc thực hiện một số hành động nhất định để đáp ứng đầu vào của người dùng. Điều này cũng đúng với lập trình cho trình điều khiển thiết bị (ví dụ: P trong ngăn xếp trình điều khiển thiết bị USB).[1]
Trong một ứng dụng hướng sự kiện, thường có một vòng lặp chính lắng nghe các sự kiện và sau đó kích hoạt hàm callback khi một trong những sự kiện đó được phát hiện. Trong các hệ thống nhúng, điều tương tự có thể đạt được bằng cách sử dụng ngắt phần cứng thay vì một vòng lặp chính chạy liên tục. Các chương trình hướng sự kiện có thể được viết bằng bất kỳ ngôn ngữ lập trình nào, mặc dù nhiệm vụ dễ dàng hơn trong các ngôn ngữ cung cấp sự trừu tượng hóa ở mức độ cao, chẳng hạn như await và closure.
Xử lý sự kiện
sửaXem thêm
sửa- Autonomous peripheral operation
- Comparison of programming paradigms
- Dataflow programming (a similar concept)
- DOM events
- Event-driven architecture
- Event stream processing (a similar concept)
- Hardware description language
- Ngắt
- Inversion of control
- Message-oriented middleware
- Programming paradigm
- Publish–subscribe pattern
- Reactor pattern
- Signal programming (a similar concept)
- Staged event-driven architecture (SEDA)
- Time-triggered system (an alternative architecture for computer systems)
- Virtual synchrony, a distributed execution model for event-driven programming
Tham khảo
sửa- ^ Vivek Gupta, Ethan Jackson, Shaz Qadeer and Sriram Rajamani. “P: Safe Asynchronous Event-Driven Programming”. Truy cập ngày 20 tháng 2 năm 2017.Quản lý CS1: sử dụng tham số tác giả (liên kết)
Liên kết ngoài
sửa- Concurrency patterns presentation given at scaleconf
- Event-Driven Programming: Introduction, Tutorial, History, tutorial by Stephen Ferg
- Event Driven Programming, tutorial by Alan Gauld
- Event Collaboration, article by Martin Fowler
- Rethinking Swing Threading, article by Jonathan Simon
- The event driven programming style Lưu trữ 2005-02-20 tại Wayback Machine, article by Chris McDonald
- Event Driven Programming using Template Specialization, article by Christopher Diggins
- Concepts and Architecture of Vista - a Multiparadigm Programming Environment, article by Stefan Schiffer and Joachim Hans Fröhlich
- Event-Driven Programming and Agents, chapter
- LabWindows/CVI Resources
- Distributed Publish/Subscribe Event System, an open source example which is in production on MSN.com and Microsoft.com