質問

このcx_Oracleカーソルを接続オブジェクトが使用されていますの異なるスレッド?はどのように発電機の影響本的に振る舞えるのでしょうか?具体的には...

編集:元の例では機能不正;発電機れによって返されるサブ機能 yield 使い分けなどが行われておらず直接のループを実行します。ことを明確にしき finally 実行後 return なもお答えできませんのでるかどうかにカーソルを使用できる場合は別のスレッド開始のconnectionオブジェクトのカーソルを作成します。そして実際にいるようにpython2.4以上), try...finallyyield 原因は構文エラーになります。

def Get()
  conn = pool.get()
  try:
    cursor = conn.cursor()
    cursor.execute("select * from table ...")
    return IterRows(cursor)
  finally:
    pool.put(conn)

def IterRows(cursor):
  for r in cursor:
    yield r

Get() ですから呼び出される関数を複数のスレッド)。の接続が作成され threaded=False 引数です。

った...

  1. レース1 cursor オブジェクトも使用可能の場合スレッドの2がやって来て、同じ接続オブジェクト?ない場合には、何が起こるのか。

の挙動を見かけは例外cx_Oracle話プロトコルエラー、そしてsegfaultおります。

役に立ちましたか?
scroll top