スレッドは独立してそのリソースの数によってサポートされ、軽量な実体です。Pythonのために、スレッドは、独自の独立したスタックを、持っているスレッドの実行エラーは、スレッドは、エラー処理の必要性は、一般的にはスレッドで処理されますが、実行を、終了したときにメインプロセスは例外に、スレッドを処理する場合にのみ、どの主要プロセスへの例外通知できますか?プロセスでは、子供の異常産生がどのように対処する親プロセスを処理しますか?マルチプロセッシングのためのパッケージ変更マルチプロセッシングは、マルチプロセスPythonライブラリ、同様のAPIそのサブモジュールの実装をMultiprocessing.processは、同じAPIで実現ダミースレッドで、唯一の違いは、ダミーを行うスレッドの唯一のパッケージがある、ということであること。この私は、CPU集約型またはIOの集中プログラムは、便利な提供のために、あなたはマルチプロセスとマルチスレッド間を自由に切り替えると、単純に1行のコードを変更することができますかわかりません。機能をerror_callback呼び出し)(改善とapply_async用マルチプロセッシングでのpython3で、あなたは適切なエラー処理関数を指定することができますデフォルトのパラメータerror_callback = Noneを、追加していない、それは子に表示されるか、子供が異常なスレッドの実行中ですコールバック=なしパラメータ(Python2もサポート)で、子供やスムーズに実行している子スレッドの後に呼び出されます。対応する。呼び出す原理は、実行を指示され、その子スレッド_SUCCESSプロパティまたは子プロセスであり、状態。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
def
get(
self
, timeout
=
None
):
self
.wait(timeout)
if
not
self
.ready():
raise
TimeoutError
if
self
._success:
return
self
._value
else
:
raise
self
._value
def
_set(
self
, i, obj):
self
._success,
self
._value
=
obj
if
self
._callback
and
self
._success:
self
._callback(
self
._value)
if
self
._error_callback
and
not
self
._success:
self
._error_callback(
self
._value)
self
._event.
set
()
del
self
._cache[
self
._job]
|
、self._value文がスロー上げることException.AttributeErrorで、それは一つだけではAttributeErrorで、1がエラー出て、2つのエラーを投げる見ることができます。そして、私たちが使用できることに注意してくださいはAttributeErrorあり、中あなたが唯一のホストプロセスに通知する必要がある場合は、エラーのスレッドまたはプロセス実行の種類は、我々は、さらに処理中にこのエラーメッセージを取得するerror_callbackにすることができ、はAttributeErrorを介して渡すように適切なエラー・メッセージのフォーマット文字列を使用する必要があります間違って、その後、あなただけ。はAttributeErrorを調達する必要があるスレッドをチェック状態を終了終了するには、異常なスレッドにし、通常の終了は、スレッドの終了後に実行するときとき終了コードが同じではないが、メモリはこれに基づいて、すぐに、私たちがすることができます回復することはありませんスレッドに表示されるエラーをトラップに終了コードの方法を調べることによって、PengMengさんのブログから、この方法は、一般的に、プロセス内のPythonのプロパティは、同じ効果を達成することができないことがあり、ここでEXITCODEもはや綿密な議論である。より多くの技術的な情報かもしれない懸念のために:gzitcast