JTextArea.append的线程安全性

lgp*_*lgp 5 java swing

java doc说append方法是线程安全的.但是,我记得当我尝试从不同的线程(几个月前)使用附加到文本区域时,我得到混乱的文本,其中线程1将附加一些字符,而线程2将附加一些其他字符.因此,我没有在jtextarea中获取STRINGstring,而是获得了SstTrRINingG.

两者之间会有什么不同:

  1. 同步追加
  2. 瓶颈通过threadpoolexecutor从不同的线程附加
  3. 在EDT上使用invokeLater

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

tra*_*god 7

虽然相对于EDTappend()是线程安全,但append()在Java 7中却没有.附加使用invokeLater()将按照它们入队的顺序进行处理.对其他方法的严格审查需要sscce.