Dual-core betekent zo veel als dat er 2 processoren in één verpakking steken.
Vergelijk het met wasmachines. Het equivalent van een dual core is dan een wasmachine met 2 trommels. Je kan 2 keer zo veel was proper krijgen in dezelfde tijd als met een normale machine, maar als al je was in 1 trommel past, dan zal die niet 2 keer zo snel proper zijn...
Een programma wordt tegenwoordig onderverdeeld in één of meer threads (dus minimaal 1). Als een programma in meerdere threads onderverdeeld wordt dan spreken we van een multi-threaded programma. Threads van 1 programma moeten zo gedefinieerd worden dat ze naast elkaar uitgevoerd mogen worden (ze mogen dus niet van elkaar afhankelijk zijn).
Multi-threading wordt steeds belangrijker omdat hardware steeds beter wordt in het parallel verwerken van taken.
Waarom zijn niet alle programma's multi-threaded? Wel, de meeste Windows-programma's zijn dat wel:
- Rechtsklik op je taskbar en klik op "Task Manager".
- Klik op de "Processes"-tab.
- Open het "View"-menu en selecteer "Select Columns...".
- Vink "Thread Count" aan en klik op OK.
- In de kolom "Threads" zie je nu het aantal threads die voor ieder programma.
Zoals je merkt bestaan veel programma's uit meerdere threads. Meestal beperkt dat zich echter tot één hoofd-thread en een aantal threads voor bijzaken (zoals één voor de user-interface (= de menu's, ...)).
Om efficiënt te zijn, moet je eigenlijk meerdere threads hebben die allen ongeveer even zwaar zijn. Voor de ontwikkelaar is dat echter erg moeilijk te verwezenlijken. Meestal is de logica van een programma moeilijk in onafhankelijke stukken te zagen.
Voor server-toepassingen is dit vaak veel eenvoudiger. Voor een web-server bijvoorbeeld kan je 1 thread maken per connectie met de server. Door iedere connectie kunnen dezelfde taken uitgevoerd worden los van andere connecties.
Voorbeelden van desktop-toepassingen die wel (gebalanceerd) multi-threaded zijn, zijn Photoshop en AutoCAD (voor zover je dat een desktop-toepassing kan noemen natuurlijk).