当前位置: 首页 > 面试题库 >

哪些Swing组件方法是线程安全的?

公孙令秋
2023-03-14
问题内容

根据Swing教程:

一些Swing组件方法在API规范中被标记为“线程安全”。这些可以从任何线程安全地调用。所有其他Swing组件方法都必须从事件分发线程中调用。忽略此规则的程序在大多数情况下都可以正常运行,但是会遇到难以预料的错误,这些错误很难重现。

但是这些标记为“线程安全”的Swing组件方法是什么?真的有吗?

更新/赏金:

是否有线程安全的摆动方法的 完整列表 ?(线程安全的Swing方法似乎很少见,因此此类列表不能太长…)


问题答案:

Google告诉我,至少那些是线程安全的。以下是链接再次断开的情况的概述:

  • JTextPane
    • replaceSelection()
    • insertComponent()
    • insertIcon()
    • setLogicalStyle()
    • setCharacterAttributes()
    • setParagraphAttributes()
  • JTextArea
    • insert()
    • append()
    • replaceRange()
  • JTextComponent
    • replaceSelection()
    • setText()
    • print()
    • getPrintable()
  • UndoManager
    • 所有方法。
  • DefaultStyledDocument
    • insert()
    • setLogicalStyle()
    • setCharacterAttributes()
    • setParagraphAttributes()
  • StyleContext
    • addAttribute()
    • addAttributes()
    • removeAttribute()
    • removeAttributes()
    • reclaim()
  • AbstractDocument
    • render()
    • remove()
    • insertString()
    • createPosition()
  • PlainDocument
    • insertString()
  • HTMLDocument
    • setParagraphAttributes()


 类似资料:
  • 使用VTD 2.11 VTDGen可以初始化一次并被多个线程使用吗? 例如,我想在servlet中使用它,以便在servlet初始化时对VTGen进行初始化,然后解析收到的每个请求。 对于自动驾驶仪也是一样,我想我可以设置一次XPATH,然后在每次新导航时都重新绑定它?

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

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

  • 看起来它工作得很好,但我想知道我是否必须确保新代码需要线程安全?这里有什么意见吗?抱歉用了假名字,提前致谢。

  • IBM的支持指出,Class.GetAnnotation的实现不是线程安全的。 与其他JVM实现(例如,OpenJDK)相比,我们可以看到它们以线程安全的方式实现类方法。IBM JVM是一个闭源JVM,他们确实会发布一些源代码和他们的JVM一起,但无论什么时候他们的类实现是否线程安全,都不足以做出明确的判断。 类文档没有清楚地说明它的方法何时是线程安全的。那么,将类方法(特别是getAnnotat

  • 例如,以下方法: 我关心的是如果我有多个线程调用。对象是否可能被另一个线程覆盖?换句话说,Thread 1调用并获取返回的