Asynchroon (II) bijv.nw. (comp.sci.) – synchroon

Elk vak kent zijn eigen jargon. Van wiskundigen wordt wel gezegd dat ze gewone woorden uit de spreektaal pakken, er een eigen definitie voor bedenken, waarna het iets compleet anders betekent. Nou heb ik ooit wiskunde gestudeerd, en meestal kon ik tijdens mijn studie toch wel achterhalen op welke manier de wiskundige betekenis met de colloquiale betekenis samenhing. Nee, het zijn juist die gesjeesde computerjongens die het helemaal bont maken.

Ik bedoel het woord ‘asynchroon’, of zijn tegenhanger ‘synchroon’. In het dagelijks taalgebruik kennen we die uit woorden en uitdrukkingen als ‘synchroonzwemmen’, ‘horloges met elkaar synchroniseren’, ‘A moet synchroon lopen met B’, enz. Als twee dingen synchroon zijn, dan gebeuren ze op hetzelfde moment.

Dus ik was nogal geschokt toen ik tijdens mijn Eerste Echte Programmeerervaringen erachter kwam dat als je bij een Java-methode ‘synchronised’ zet, er op elk gegeven moment maar één enkele thread die methode mag uitvoeren. Twee threads die de methode aanroepen, zullen op elkaar moeten wachten en hem na elkaar uitvoeren. Hoezo ‘synchroon’? En in .Net heb je meerdere standaardmanieren om methoden asynchroon te laten uitvoeren. Wat dan weer betekent dat de huidige thread dingen kan doen terwijl een andere thread die methode uitvoert – tegelijkertijd.

…en nou weet ik dus niet of ik als wiskundige blij moet zijn of niet.