2017-08-11 6 views
1

私はPython 3.5でmysqlclient v1.3.10を使用しています。データベースに接続したら、接続オブジェクトを取得します。そこからクエリを実行するために使用するカーソルオブジェクトを取得します。MySQLdbのConnectionオブジェクトとCursorオブジェクトを複数のスレッドから安全に使用できますか?

これらのオブジェクトはスレッドセーフです(つまり、1つのセットを作成し、複数の異なるPythonスレッド間で共有して使用できますか)。

答えて

1

あなたはできないようです。 MySQLdb documentation状態(threadsafetyにさらに少し下にスクロール):

本の一般的な結論は次のとおりです。 スレッド間の接続を共有しないでください。あなたの努力や鉱山にはまったく価値がありません。最後に、 は、接続ごとに別々の スレッドを実行するので、おそらくパフォーマンスを低下させます。プール内のキャッシュ接続 のようなものを確実に行うことができ、それらの接続を1つのスレッドに の時刻に与えることができます。 2つのスレッドが同時に接続を使用するようにすると、 MySQLクライアントライブラリがうまく機能しなくなります。あなたは と警告されています。

関連する問題