Compartilhar via


Multithreading

Em sistemas operacionais multithread, os drivers devem ser thread-safe. Ou seja, deve ser possível que os aplicativos usem o mesmo identificador em mais de um thread. Como isso é obtido é específico do driver e é provável que os drivers serializem todas as tentativas de usar simultaneamente o mesmo identificador em dois threads diferentes.

Os aplicativos geralmente usam vários threads em vez de processamento assíncrono. O aplicativo cria um thread separado, chama uma função ODBC nele e continua o processamento no thread principal. Em vez de ter que sondar continuamente a função assíncrona, como é o caso quando o atributo de instrução SQL_ATTR_ASYNC_ENABLE é usado, o aplicativo pode simplesmente deixar o thread recém-criado terminar.

As funções que aceitam um identificador de instrução e estão em execução em um thread podem ser canceladas chamando SQLCancel com o mesmo identificador de instrução de outro thread. Embora os drivers não devem serializar o uso do SQLCancel dessa maneira, não há garantia de que chamar o SQLCancel realmente cancelará a função em execução no outro thread.