Delen via


Multithreading

Op multithread-besturingssystemen moeten stuurprogramma's thread-safe zijn. Dat wil gezegd, het moet mogelijk zijn dat toepassingen dezelfde ingang op meer dan één thread gebruiken. Hoe dit wordt bereikt, is stuurprogrammaspecifiek en het is waarschijnlijk dat stuurprogramma's pogingen om gelijktijdig dezelfde ingang op twee verschillende threads te gebruiken, serialiseren.

Toepassingen gebruiken vaak meerdere threads in plaats van asynchrone verwerking. De toepassing maakt een afzonderlijke thread, roept er een ODBC-functie op aan en gaat vervolgens verder met verwerken op de hoofdthread. In plaats van voortdurend de asynchrone functie te moeten peilen, zoals het geval is wanneer het kenmerk SQL_ATTR_ASYNC_ENABLE instructie wordt gebruikt, kan de toepassing de zojuist gemaakte thread gewoon laten voltooien.

Functies die een instructiegreep accepteren en worden uitgevoerd op één thread, kunnen worden geannuleerd door SQLCancel aan te roepen met dezelfde instructiegreep van een andere thread. Hoewel stuurprogramma's het gebruik van SQLCancel op deze manier niet moeten serialiseren, is er geen garantie dat het aanroepen van SQLCancel de functie die wordt uitgevoerd op de andere thread, daadwerkelijk annuleert.