是ICU的ucnv_convertEx线程安全吗?

时间:2011-02-01 14:33:18

标签: thread-safety icu

我想知道ICU库中的ucnv_convertEx是否是线程安全的。看来源似乎它是线程安全的,但我不是100%肯定。此外,我无法在ICU文档中找到明确的状态。

由于

2 个答案:

答案 0 :(得分:2)

ICU User Guide对所有具有开放/关闭模型的对象进行了讨论。每个Converter对象必须一次在单个线程中使用。如果您需要更多,请克隆它们。克隆它们很便宜。

顺便问一下,您在哪里可以获得这些信息?也许你可以提交一张票,我们可以改进文档。感谢。

答案 1 :(得分:1)

基本上ICU是线程安全的,但是:

  1. 你不能认为从不同的线程调用同一对象操作的const成员函数/函数是安全的(实际上这通常是不安全的,这使得ICU在所有与线程相关的方面都很棘手)。
  2. 当然,你不能使用同一个对象和非成本成员函数/函数来处理来自不同线程的对象。
  3. 基本上在ucnv_convertEx的情况下,只要你不在线程之间共享UConverter就可以了。