API 概要
class ContextAwareThread
threading.Thread のそのまま置き換え可能な代替実装で、スレッド内でも call が期待どおりに動作することを保証します。Weave では特定の contextvars を設定しておく必要があります (call_context.py を参照) が、新しいスレッドは親のコンテキストを自動ではコピーしないため、call コンテキストが失われることがあります。これは望ましくありません。このクラスは contextvar のコピーを自動化するので、ユーザーが期待するとおり、このスレッドは「そのままで動作」します。
このクラスを使わなくても、代わりに次のように記述すれば同じ効果を得られます。
method __init__
プロパティ daemon
start() が呼び出される前に設定する必要があります。そうしないと、RuntimeError が発生します。初期値はこのスレッドを作成したスレッドから継承されます。メインスレッドはデーモンスレッドではないため、メインスレッドで作成されたすべてのスレッドはデフォルトで daemon = False になります。
デーモンスレッドのみが残ると、Python プログラム全体が終了します。
プロパティ ident
プロパティ 名
プロパティ native_id
get_native_id() 関数を参照してください。これは、カーネルから報告される Thread ID を表します。
method run
class ContextAwareThreadPoolExecutor
call_context.py を参照) が、新しいスレッドは親のコンテキストを自動的には引き継がないため、call コンテキストが失われることがあります。これは望ましくありません。このクラスは contextvar のコピーを自動化するため、この executor を使用すると、ユーザーが期待するとおりに「そのまま動作」します。
このクラスを使わなくても、代わりに次のように書けば同じ効果を得られます。
method __init__
method map
method submit
関数 deprecated
new_name にリダイレクトするデコレータです。
関数 is_colab
関数 is_notebook
関数 log_once
log_method: メッセージのログに使用する method。文字列の引数を受け取る必要があります。message: ログするメッセージ。 例: