JTextArea.append 的线程安全性

问题描述 投票:0回答:2

Javadoc 说append 方法是线程安全的。但是,我记得当我尝试从不同线程(几个月前)使用附加到文本区域时,我得到了混乱的文本,其中线程 1 将附加一些字符,而线程 2 将附加一些其他字符。

因此,我得到的不是 jtextarea 中的 STRINGstring,而是 SstTrRINingG。

以下之间会有什么区别:

  1. 同步追加
  2. 通过线程池执行器从不同线程追加瓶颈
  3. 在 EDT 上使用 invokeLater

或者他们都可以解决问题吗? 谢谢

java swing
2个回答

1
投票
你所有的解决方案对我来说似乎都不错。由于无论如何您都需要使用某种形式的 Invoke 来更新 UI,因此最好只使用

invokeLater

 以避免任何其他复杂情况。

© www.soinside.com 2019 - 2024. All rights reserved.