代码之家  ›  专栏  ›  技术社区  ›  Superlokkus

boost-spirit V2-Qi语法线程安全吗?

  •  1
  • Superlokkus  · 技术社区  · 6 年前

    在阅读boost spirit V2文档时, this SO-question this top google spirit doc result for spirit classic/v1 #define BOOST_SPIRIT_THREADSAFE 不会有任何影响,但如果V2在线程安全方面与经典版没有区别,那么提到的源代码并不清楚它是在谈论不同的实例还是共享实例。

    所以我的首要问题是:


    1.不同的语法对象是否线程安全?

    如果有人知道:

    3.不同的规则对象是否线程安全?

    4.共享的spirit V2规则对象是否线程安全?

    我还把它标记为spirit x3,因为这是同一个问题。

    1 回复  |  直到 6 年前
        1
  •  2
  •   sehe    6 年前

    事实上,提神护体根本不适用于气,它只适用于经典。

    有了这一点,线程安全唯一依赖的就是Boost是否是用线程支持构建的。我在五年中发现的所有迹象都表明,没有一个库明确支持没有线程支持的构建( What exactly does `threading=multi` do when compiling boost? ).

    非终端(语法和规则)是线程安全的,除非您派生出自己的非无状态语法和 parse 操作不是常量。

    实际上,您更喜欢编写解析器,以便它们可以显式地符合const条件:

    Parser const p;
    
    book ok = parse(f, l, p);