Boekbespreking: Multitasking with Raspberry Pi
Multitasking kan op twee manieren worden aangepakt: multiprocessing en multithreading. De auteur legt goed uit wat het verschil tussen processen en threads is en wanneer men welke van die twee het beste kan gebruiken. Ook de communicatie tussen verschillende processen of threads komt aan bod, inclusief de valkuilen. En ook als u in uw Python-programma een extern programma wilt aanroepen en de uitvoer daarvan wilt uitlezen, komt u aan uw trekken.
Maar de taal Python biedt allerlei modernere concepten voor multitasking die in dit boek niet aan bod komen, waaronder coroutines en het async keyword en de module concurrent.futures die een high-level interface aanbiedt voor asynchrone taken, zowel met threads als met processen. De auteur blijft ook vrij lang stilstaan bij de low-level bibliotheek _thread terwijl de high-level bibliotheek threading maar een kort hoofdstuk krijgt. Deze moderne concepten en high-level aanpak maken multitasking veel gebruiksvriendelijker. Het is dan ook jammer dat dit boek deze links laat liggen en zich tot de klassieke benaderingen van multitasking beperkt.
Het hele boek komt vooral neer op het toepassen van die verschillende benaderingen op concrete projecten met de Raspberry Pi, met knoppen, LED’s, sensoren en LED-displays. Dat maakt een anders toch vrij abstract concept als multitasking heel wat tastbaarder. Die projectmatige aanpak maakt de beperkingen van de besproken concepten toch deels goed.
Zo laat u meerdere LED’s op verschillende snelheden knipperen, stelt u de knippersnelheid met een toetsenbord of knop in, bouwt u een temperatuurregelaar die een oven in- en uitschakelt, stuurt u verkeerslichten op een kruispunt aan, maakt u een deurslot met keypad en nog veel meer. Na dit boek hebt u een goede basis in multitasking en hebt u voldoende uitgewerkte voorbeeldcode gezien om er zelf mee aan de slag te gaan.