@familyman
Niet elke taak eigend zich om makkelijk op te splitsen in Thread's.
Dat is zeker waar. Maar de hoofdreden om het niet te doen is dat de risico's op bugs ontzettend veel hoger komt te liggen. Hoe meer threads met elkaar samen moeten werken, des te meer er deadlock situaties op kunnen treden. En deadlock situaties worden ERG moeilijk te debuggen wanneer je meer dan 2 onafhankelijke threads hebt.
Als alle threads gewoon simpele worker threads zijn die allemaal hetzelfde doen is er weinig aan de hand. Maar als alle threads verschillende dingen doen en toch met elkaar gesynchroniseerd moeten zijn (daisy chains van threads die elkaar opstarten b.v.), dan wordt het echt zwaar. Dan kun je weken naar een simpele bug zoeken als je niet de juiste tools hebt.
Het zou al schelen als het OS tools zou leveren waarmee je de executievolgorde van threads kunt volgen. Dan kun je echt pseudoparallel gaan debuggen. De huidige OSsen zijn in feite serieele OSsen met multithreaded mogelijkheden er aan vast geplakt. Het OS is zich er amper bewust van dat er meerdere threads tegelijkertijd draaien. Als je meer gebruik gaat maken van multithreading, zal dat moeten veranderen.
Dat zal helaas kostbare processortijd gaan kosten, maar je hoeft het voorlopig alleen te doen tijdens het debuggen. Een probleem is dan nog wel dat je dan nog geen real-time applicaties kunt debuggen. Maar later kun je de debugging mogelijkheden misschien in hardware uitvoeren en kost het geen processortijd meer. Uiteindelijk is hyperthreading ook het in hardware uitvoeren van multithreading.
Het belangrijkste is dat het OS fatsoenlijke debugging mogelijkheden gaat krijgen. Helaas hebben ze dat bij Microsoft nog steeds niet gesnapt, want ze hebben het er nooit over als ze het over Longhorn hebben. Duizenden nieuwe features voor gebruikers, maar het de programmeur makkelijker maken zodat er minder bugs geprogrammeerd zullen worden: ho maar.
Let maar op, als multiprocessing en multithreading gemeengoed wordt, zal Linux daar bijvoorbeeld snel op inspringen. Ook Solaris zal dat kunnen. Ik verwacht eerlijk gezegd dat Mac OS X er ook snel op in kan springen. Die operating systems hebben de hardware allemaal verregaand losgekoppeld van het OS. Bij Windows is dat veel minder. Windows gaat het moeilijk krijgen in het multiprocessor tijdperk.
Ach ja, misschien vindt Intel er weer wat op zodat ze samen met Microsoft het 'Wintel' tijdperk nog wat langer kunnen rekken. Zo is het tot noch toe steeds gegaan.