7
再入可能関数とは正確には何ですか?
ほとんど の 時間は、再入の定義はから引用されウィキペディア: コンピュータプログラムまたはルーチンは、以前の呼び出しが完了する前に安全に再度呼び出すことができる(つまり、同時に安全に実行できる)場合、再入可能 と呼ばれます。再入可能であるためには、コンピュータプログラムまたはルーチン: 静的(またはグローバル)非定数データを保持してはなりません。 静的(またはグローバル)非定数データにアドレスを返してはなりません。 呼び出し元から提供されたデータのみを処理する必要があります。 シングルトンリソースへのロックに依存してはなりません。 独自のコードを変更してはなりません(独自のスレッドストレージで実行する場合を除く) 非再入可能コンピュータプログラムまたはルーチンを呼び出さないでください。 安全にどのように定義されていますか? プログラムを安全に並行して実行できる場合、それは常に再入可能であることを意味しますか? 再入可能機能についてコードをチェックする際に留意する必要がある、言及された6つのポイント間の一般的なスレッドは正確に何ですか? また、 すべての再帰関数は再入可能ですか? すべてのスレッドセーフ関数は再入可能ですか? すべての再帰的でスレッドセーフな関数は再入可能ですか? この質問を書いていると、1つのことが頭に浮かびます。再入可能性やスレッドセーフティなどの用語は絶対的なものですか。具体的な定義が固定されているのでしょうか。そうでない場合、この質問はあまり意味がありません。