天天看點

mysql多線程通路總結

 近來 多線程 運作一段時間就報2006錯誤。而且一旦出現2006,就再也無法正常查詢資料庫了。懷疑是多線程問題。從網上搜尋了一下,總結方法:

  • 使用--with-thread-safe-client編譯終端。
  • 如果幾個共用一個MYSQL*,在mysql_query和mysql_store_result之間,不能有其他資料庫動作(查詢、修改、删除等)。為此,需要使用線程鎖。

這個有點麻煩,特别是在判斷各種出錯情況下。

  • 多線程程式設計寫法:

在主線程中,調用 mysql_library_init(0, NULL, NULL)、mysql_library_end()。

初始化:mysql_thread_init();MYSQL *mysql = mysql_init(NULL);

關閉:mysql_close(mysql); mysql_thread_end();

  具體情況,繼續觀察。

  就個人感覺,應該說第二種方法最好。