A feature within a CPU that allows two or more instruction streams (threads) to execute concurrently. Each stream is a "subprocess" that is managed by the CPU and operating system. Today's CPUs support a large number of threads. For example, IBM's POWER8 CPU comes with up to 12 cores, and each core handles eight threads for a total of 96 threads.
Operating systems are written to use multithreading wherever possible; however, applications can also be written to take advantage of this parallel processing. If the application is very complex, the effort can be formidable even for experienced programmers. See SMP
, re-entrant code
The cover of Software Development Times in November 2012 highlighted the issue that CPUs with many cores provide even more threads for the programmer.