Bagikan melalui


Pemrosesan Multibenang

Pada sistem operasi multithread, driver harus aman dari konflik antar utas. Artinya, aplikasi harus dapat menggunakan handle yang sama di lebih dari satu utas. Bagaimana hal ini dicapai tergantung pada driver, dan kemungkinan driver akan mensinkronkan setiap upaya untuk menggunakan penangan yang sama secara bersamaan pada dua utas yang berbeda.

Aplikasi biasanya menggunakan beberapa utas alih-alih pemrosesan asinkron. Aplikasi ini membuat utas terpisah, memanggil fungsi ODBC di atasnya, dan kemudian melanjutkan pemrosesan pada utas utama. Daripada harus terus-menerus memantau fungsi asinkron, seperti ketika atribut pernyataan SQL_ATTR_ASYNC_ENABLE digunakan, aplikasi dapat cukup membiarkan utas yang baru dibuat tersebut menyelesaikan tugasnya.

Fungsi yang menerima handle pernyataan dan berjalan pada satu utas komputer dapat dibatalkan dengan memanggil SQLCancel dengan handle pernyataan yang sama dari utas komputer lain. Meskipun driver tidak boleh menserialisasikan penggunaan SQLCancel dengan cara ini, tidak ada jaminan bahwa memanggil SQLCancel akan benar-benar membatalkan fungsi yang berjalan pada utas lain.