当前位置: 首页 > 知识库问答 >
问题:

VTD xml的哪些组件是线程安全的?

颜光临
2023-03-14

使用VTD 2.11

VTDGen可以初始化一次并被多个线程使用吗?

例如,我想在servlet中使用它,以便在servlet初始化时对VTGen进行初始化,然后解析收到的每个请求

对于自动驾驶仪也是一样,我想我可以设置一次XPATH,然后在每次新导航时都重新绑定它?

共有1个答案

闽鸿宝
2023-03-14

是的,VTD-XML可以启动一次并多次使用。但是,由于VTDGen的初始化成本非常低,实例化它的多个副本的成本很低。。。

AutoPilot还被设计为可重用...它与XPath表达式密切相关。

然而,在许多情况下,将的自动驾驶仪实例分配给每个线程是有意义的…这些实例中的每个都引用相同的xpath。。。

例如:

AutoPilot ap1 = new AutoPilot();
AutoPilot ap2 = new AutoPilot();

ap1.selectXpath("/a/b/c") // assign to thread 1
ap2.selectXPath("/a/b/c"); // assigned to thread2, 

虽然ap1和ap2选择相同的xpath,但它们是两个不同的xpath对象,可以由两个线程独立评估…这比尝试在两个线程之间共享一个自动驾驶仪要好…这会导致不必要的线程争用。。。

 类似资料:
  • 问题内容: 根据Swing教程: 一些Swing组件方法在API规范中被标记为“线程安全”。这些可以从任何线程安全地调用。所有其他Swing组件方法都必须从事件分发线程中调用。忽略此规则的程序在大多数情况下都可以正常运行,但是会遇到难以预料的错误,这些错误很难重现。 但是这些标记为“线程安全”的Swing组件方法是什么?真的有吗? 更新/赏金: 是否有线程安全的摆动方法的 完整列表 ?(线程安全的

  • 本文向大家介绍哪些集合类是线程安全的?相关面试题,主要包含被问及哪些集合类是线程安全的?时的应答技巧和注意事项,需要的朋友参考一下 Vector、Hashtable、Stack 都是线程安全的,而像 HashMap 则是非线程安全的,不过在 JDK 1.5 之后随着 Java. util. concurrent 并发包的出现,它们也有了自己对应的线程安全类,比如 HashMap 对应的线程安全类就

  • Vector:就比Arraylist多了个同步化机制(线程安全)。 Stack:栈,也是线程安全的,继承于Vector。 Hashtable:就比Hashmap多了个线程安全。 ConcurrentHashMap:是一种高效但是线程安全的集合。

  • 问题内容: 用户可以控制的任何变量,攻击者也可以控制,因此是攻击的源头。这称为“污染”变量,并且不安全。 使用时,可以控制许多变量。,,,和许多其它的是由客户端发送的HTTP请求报头的一部分。 有人知道“安全列表”或变量列表吗? 问题答案: 就没有这样的“安全”或“不安全”值。只有服务器控制的值和用户控制的值,您需要知道值的来源,因此是否可以出于特定目的信任该值。例如,将其存储在数据库中是完全安全

  • 我看到了不同的PHP二进制文件,比如非线程或线程安全? 这是什么意思? 这些软件包之间有什么区别?

  • 问题内容: 在中,此变量被声明为是我的问题,在某些调用之后检查值还是在多线程代码中使用perror()是安全的。这是线程安全变量吗?如果没有,那还有什么选择呢? 我在x86体系结构上将Linux与gcc一起使用。 问题答案: 是的,它是线程安全的。在Linux上,全局errno变量是特定于线程的。POSIX要求errno必须是线程安全的。 参见http://www.unix.org/whitepa