Multitasking refers to a computer carrying out more than one task at a time. Several processor technologies such as multi-core and Hyper-Threading can improve efficiency by allowing the computer to process more data in a given time, without as much data waiting in line. Multitasking will always be limited by the other resources on a computer however.
Multitasking does not usually refer to a computer literally carrying out two tasks simultaneously. This is because processing is a physical activity and in principle a processor can only be dealing with one specific piece of data at the same time. In common usage, "multitasking" instead refers to the computer working on two or more tasks during the same time period. In other words, the computer does not carry out one task in its entirety before starting on another task. Both the processor and the operating system will be set up to manage how the computer can jump back and forth between the tasks without losing data or being inefficient.
Video of the Day
A multi-core processor is a single chip that has two or more components that actually carry out the processing (the CPU core), but only one component that communicates data in and out (the bus interface). As a very crude analogy, it is a little like having a set-up of one office worker and one secretary and then adding extra office workers, but still only having one secretary. The two or more cores can allow the computer to literally process two or more sets of data simultaneously, but this benefit is limited by the possibility of delays as the data flows to and from the other parts of the computer. One big benefit of a multi-core processor is that the operating system can have one core running at full capacity on an intensive task such as video processing without "clogging up" the other cores and slowing down all other tasks.
Hyper-Threading is a technology used in some Intel processors. These processors are not physically different but are instead set up to interact with the operating system in a different way. The system will allocate two tasks to "wait in line" for each individual core; when the core becomes free, the system will choose one of these tasks for the core to process. Because the system can reallocate tasks to different cores as it goes along, it's able to reduce inefficiencies such as one core being clogged up with tasks waiting, while another core lies idle. The performance benefits of Hyper-Threading are disputed: for maximum efficiency improvements, both the operating system and individual applications must be designed with Hyper-Threading in mind.
Some computers do genuinely have two or more completely separate processors, meaning the ability to carry out two tasks simultaneously is limited only by other components -- such as memory -- and the operating system. The increased power needed to both run and cool multiple processors mean they are relatively rare in portable and desktop machines. They are more commonly associated with supercomputers, which sometimes have thousands of processors. These are particular suited to tasks which involve exploring the effects of multiple varying factors and outcomes -- for example, weather forecasting, where it would take too long to look at each possibility in sequence.