1

ICU ライブラリの ucnv_convertEx がスレッドセーフかどうか疑問に思っています。ソースを見ると、スレッドセーフのようですが、100% 確実ではありません。また、ICU のドキュメントでこれに関する明示的な状態を見つけることができません。

ありがとう

4

2 に答える 2

2

ICUユーザー ガイドでは、開閉モデルを持つすべてのオブジェクトについて、これについて説明しています。各 Converter オブジェクトは、一度に 1 つのスレッドで使用する必要があります。さらに必要な場合は、複製します。安価にクローンできます。

ところで、この情報をどこで予想したでしょうか。チケットを提出していただければ、ドキュメントを改善できます。ありがとう。

于 2011-02-02T18:44:53.483 に答える
1

基本的に ICU はスレッドセーフですが、

  1. 異なるスレッドから同じオブジェクトの const メンバー関数/関数を呼び出すことが安全であると想定することはできません (実際、これは一般的に安全ではないため、ICU はすべてのスレッド関連の側面で扱いにくくなります)。
  2. もちろん、異なるスレッドからのオブジェクトで動作する非コストメンバー関数/関数で同じオブジェクトを使用することはできません。

基本的にucnv_convertExスレッド間で UConverter を共有しない限り安全です。

于 2011-02-02T18:56:58.490 に答える