Linux で MySQL 5.5 C API を使用しています。
私のプログラムは 1 つのメイン スレッドで開始し、多数のワーカー pthread を生成します。ワーカー スレッドは、データベース トランザクションを行う必要があります。
したがって、私のプログラムには2つの関数があります:
foo_init_main_thread() // called once before any worker threads are started
foo_init_worker_thread() // called from a worker thread
// immediately after it has started
この環境で MySQL を初期化する方法は明確ではありません。ドキュメントは本当に不明確です。
、、、の中foo_init_main_thread
で、foo_init_worker_thread
どの順番で呼び出す必要がありますか?mysql_thread_init
mysql_library_init
mysql_init
mysql_connect
スレッドごとに 1 つのデータベース ハンドルが必要ですか、それともすべてのワーカー スレッドがデータベース ハンドルを共有できますか?
ドキュメントはこちら: http://dev.mysql.com/doc/refman/5.5/en/c.html