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).

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

Xem thêm 

 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

Liên kết ngoài 

 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 , 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

Mẫu hình lập trình
Sự kiện (điện toán)