Dela via


Multitrådning

På flertrådsoperativsystem måste drivrutiner vara trådsäkra. Det vill säga, det måste vara möjligt för applikationer att använda samma handtag på mer än en tråd. Hur detta uppnås är drivrutinsspecifikt, och det är troligt att drivrutiner kommer att serialisera alla försök att samtidigt använda samma handtag i två olika trådar.

Program använder ofta flera trådar i stället för asynkron bearbetning. Programmet skapar en separat tråd, anropar en ODBC-funktion på den och fortsätter sedan bearbetningen på huvudtråden. I stället för att kontinuerligt behöva avsöka den asynkrona funktionen, vilket är fallet när SQL_ATTR_ASYNC_ENABLE-instruktionsattributet används, kan programmet helt enkelt låta den nyligen skapade tråden slutföras.

Funktioner som accepterar en instruktionsreferens och körs på en tråd kan avbrytas genom att anropa SQLCancel med samma instruktionshandtag från en annan tråd. Även om drivrutiner inte ska serialisera användningen av SQLCancel på det här sättet finns det ingen garanti för att anrop av SQLCancel faktiskt avbryter funktionen som körs på den andra tråden.