非再入可能関数は、複数のスレッドから同時に呼び出すことができない関数です。入出力ストリーム オブジェクト、時刻および日付関数、シグナルなど、C 標準ライブラリの一部の関数は非再入可能です。処理関数、一部の数学関数、環境変数関数、およびファイル システム関数。マルチスレッド プログラムでは非リエントラント関数を回避する必要があります。回避できない場合は、スレッドの安全性を確保するために、ミューテックス、アトミック操作、またはスレッド ローカル ストレージなどの予防措置を講じることができます。
C の非再入可能関数
非再入可能関数とは何ですか?
非リエントラント関数とは、複数のスレッドから同時に呼び出すことができない関数を指します。複数のスレッドが非再入可能関数を同時に呼び出すと、データの破損やプログラムのクラッシュなどの予期しない動作が発生する可能性があります。
C の非再入可能関数
C 標準ライブラリの一部の関数は、次のような再入可能ではありません。
std::cin
, std::cout
, std::cerr
)std::time
, std::localtime
)std ::signal
)std::rand
)std::getenv
)std::ifstream
や std::ofstream
など) )非再入可能関数を避ける
マルチスレッド プログラムでは、非再入可能関数の使用を避けてください。それらを回避できない場合は、スレッドの安全性を確保するために追加の予防措置を講じる必要があります。典型的なソリューションは次のとおりです。
以上がC++ の非再入可能関数とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。