Javadoc 说append 方法是线程安全的。但是,我记得当我尝试从不同线程(几个月前)使用附加到文本区域时,我得到了混乱的文本,其中线程 1 将附加一些字符,而线程 2 将附加一些其他字符。
因此,我得到的不是 jtextarea 中的 STRINGstring,而是 SstTrRINingG。
以下之间会有什么区别:
或者他们都可以解决问题吗? 谢谢
append()
相对于 EDT 是线程安全的,但 Java 7 中的 append()
却不是。使用 invokeLater()
的追加将按照它们入队的顺序进行处理。对其他方法的严格检查需要sscce。
invokeLater
以避免任何其他复杂情况。