An interrupt is when a microprocessor does something that it is not told to do because of things that happen outside what the program is supposed to do. Interrupts happen most often because the processor gets a signal from hardware, but they can also come from software that is running along with the program. Among the many things can cause interrupts are pressing keys on a keyboard, the built-in timer going off, a data transfer taking place, or any other event that needs an action from the processor right away. Interrupts can happen at any time while the processor is running a program, no matter where in the program's source code it is.