Covadis Kennissessie: alles over Threads

Datum: dinsdag 8 mei 2018

800px_colourbox8785853jpg

Op vrijdag 4 mei werd er in de befaamde bar bij Covadis weer een informatieve kennissessie gehouden. Iedere twee maanden krijgen de ontwikkelaars de gelegenheid om over verschillende aspecten van het vakgebied nieuwe kennis op te doen. Dit alles onder het genot van heerlijk belegde broodjes die ook deze editie gretig aftrek vonden. Voor deze sessie stond het onderwerp ‘Threads’ op het programma. Een Covadis-software architect met veel kennis van het onderwerp deelde zijn kennis met al zijn collega’s.

Multi-Threading

Wie naar buiten kijkt ziet aan de strakblauwe lucht en de felle zonnestralen dat de zomer zich aankondigt. Binnen de muren van Covadis ligt de focus heel ergens anders. De gordijnen worden deels dichtgetrokken, want tijdens de kennissessie draait het allemaal om wat er op het grote scherm gebeurt. De enthousiaste spreker begint met zijn presentatie. Uiteraard is er geen sprake van eenrichtingsverkeer. Tijdens de sessie is er meer dan voldoende ruimte voor vragen, discussie en opmerkingen. Op- en aanmerkingen zijn zelfs zeer welkom. Er gaan tussendoor dan ook genoeg handen de lucht in vanuit het publiek, al dan niet gehuld in een Star Wars T-shirt vanwege May the Forth. Die middag draaide het om een andere force. De kracht van Multi-Threading, de do’s en dont’s en de vergelijking met C# modifier ‘async’.

Threading

Dankzij Multi-Threading is het mogelijk dat er meerdere processen van een applicatie tegelijkertijd efficiënt worden uitgevoerd. Waar voorheen bij een actie de wachttijd van alle werkende functies werd opgeteld, is het dankzij Threads nu mogelijk om de functies tegelijkertijd te laten draaien. De gebruiker hoeft dus niet langer te wachten dan de wachttijd van de minst snelle functie. Een applicatie kan door het toepassen van Multi-Threading dus efficiënter werken. Dat zorgt voor performance verbetering, een hogere ‘responsiveness’ en dus meer gebruiksgemak. Een kennissessie is voor de ontwikkelaars een uitgelezen mogelijkheid om hun inzichten te delen en van elkaar te leren.

Synchroon en asynchroon

Verschillende onderdelen zijn behandeld tijdens de kennissessie.

  • Synchroon en asynchroon
  • Parallel
  • Context switch
  • Simultaneous Multi-Threading
  • Async
    • Webaccess (HttpClient)
    • IO (StorageFile, Streams)
    • Images (Bitmap Encoder)
    • WCF
    • Applicaties met een UI Thread

Pitfalls

De nodige ‘Pitfalls’ (veel voorkomende fouten) werden eveneens besproken en gedemonstreerd. Denk aan Race Conditions (Threadsafety), (Main) Thread deadlocks, Parallel, Thread (abort/suspend/resume) en Async: Debugging en Aggregate Exceptions. Tijdens de demonstraties kwamen er vele boeiende interacties op gang. Zodoende bleef iedereen scherp op de vrijdagmiddag.

Ontwikkelaars

Uiteraard werden er nog meer onderdelen besproken. De kennissessie was in ieder geval wederom geslaagd. De ontwikkelaars staan te popelen om de techniek in de praktijk te brengen en kijken al reikhalzend uit naar de volgende sessie.