Interrupts are efficient sequences which lower the power consumption of the processor while allowing conditional branching.
The usual method of branching used is polling. Polling is the process of continually checking if the specified condition is true. This although direct and easy, isn’t efficient. Polling takes up valuable resources including clock cycles and power even when its not required. Therefore it’s also called “busy waiting”, i.e. the processor busily waits for some action to happen.
To overcome this inefficiency, interrupts are utilized. They are virtual triggers which call a handler function when a condition is met.
Example
Button Press Detection Traditional: