スレッドサポート
スレッド・サポート・コマンドは、クラスや関数におけるマルチスレッド・プログラミングのサポート・レベルを指定するためのものです。サポートには3つのレベルがあります:threadsafe
reentrant
およびnonreentrant
。
デフォルトはnonreentrant
で、これは関連するクラスや関数を複数のスレッドで呼び出すことができないことを意味します。Reentrant
とthreadsafe
は、主にクラスで使用されるレベルです。
Reentrant
は、関数の各呼び出しが一意のデータを参照することを条件に、参照されるクラス内のすべての関数を複数のスレッドから同時に呼び出すことができることを意味します。一方、 は、各呼び出しが共有データを参照する場合でも、参照されるクラス内のすべての関数を複数のスレッドから同時に呼び出すことができることを意味します。threadsafe
あるクラスが「⽋⽋」または「⽋⽋」とマークされている場合、そのクラス内の関数は、「⽋⽋」コマンドを使⽤してnonreentrant
マークすることができます。
例
/*! \class QLocale \brief The QLocale class converts between numbers and their string representations in various languages. \reentrant \ingroup i18n \ingroup text QLocale is initialized with a language/country pair in its constructor and offers number-to-string and string-to-number conversion functions similar to those in QString. ... \nonreentrant Sets the global default locale to \a locale. These values are used when a QLocale object is constructed with no arguments. If this function is not called, the system's locale is used. \warning In a multithreaded application, the default locale should be set at application startup, before any non-GUI threads are created. \sa system(), c() */ void QLocale::setDefault(const QLocale &locale) { default_d = locale.d; }
QDocは、クラスが再入可能と宣言されたときに通知を生成し、例外(宣言された非再入可能関数)をリストします。再入可能性とスレッド安全性に関する一般的なドキュメントへのリンクが含まれています。さらに、「警告:この関数はリエントラントではありません。" という警告が、リエントラントでない関数のドキュメントに表示されます。
QDocはクラスがスレッドセーフと宣言されたときにも同じ通知と警告を生成します。
詳しくは再入可能性とスレッドセーフに関する一般的なドキュメントを参照してください。
コマンド
\スレッドセーフ
を使用すると、関連するクラスや関数がスレッドセーフであり、複数のスレッドから同時に呼び出すことができることを示す行がドキュメントに含まれます。
このコマンドは、それ自身の行で立っていなければなりません。
このコマンドから生成されるドキュメンテーションは、"recreentrant "コマンドから生成されるドキュメンテーションに似ています。上記の導入部の例を参照してください。
を参照してください。
\Ȃ Ȃ Ȃ
(ただし、各呼び出しがそれ自身のデータを参照する場合に限ります。) \reentrant コマンドは、関連付けられたクラスまたは関数を複数のスレッドから同時に呼び出すことができることを示します。上の例を参照してください。
コマンドはそれ自身の行に記述する必要があります。
また、"Nonreentrant "と "threadsafe "も参照してください。
\非reentrant
を使用すると、関連するクラスや関数を複数のスレッドで呼び出すことができな いことを示します。Nonreentrantはデフォルトのケースです。
このコマンドは1行で実行する必要があります。
このコマンドは、1行で実行する必要があります。クラスが ¦reentrantまたは ¦threadsafe とマークされている場合、そのクラス内の関数は、除外する関数の ¦fnコメント内でこのコマンドを使用してnonreentrant
マークできます。
をマークすることができます。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。