GUI的线程不是由awt-???-0管理的吗?
怎么会不同步呢??

解决方案 »

  1.   

    因为Swing被设计成单线程的。
    所以不同步。
      

  2.   

    谁胡说,Swing是单线程的?Swing是线程不安全的。为提高绘制速度,多线程的。Swing使用单独的消息队列来管理线程的。
      

  3.   

    答:这句话其实很好理解的,JAVA的GUI线程不同步,是说:在设计Swing与AWT GUI类库时,没有对GUI组件的更新(及其它GUI界面的操作)做多线程的并发处理(也就是说:是假设GUI操作的部分-如:GUI界面的更新 ,是多线程不安全的,只有很少量的GUI操作是多线程安全的),因此,要求程序员,在GUI界面的更新等GUI操作时,只能由事件分发线程这一个线程来进行GUI界面的更新等GUI操作,其它线程(如:你自己定义的许许多多的线程,都不允许直接进行GUI界面的更新等GUI操作(这就是线程不安全的含义),要用SwingUtilities类中的invokeAndWait()或invokeLater()来请求 事件分发线程这一个线程来进行GUI界面的更新等GUI操作).
    为什么不把Swing GUI类库设计成synchronized的多线程安全的方式?据Swing的主要设计师讲,主要原因是:1)目前主流的GUI类库都是线程不安全的 2)synchronized的多线程安全的方式类库设计复杂的多,在多线程程序员在使用尢其是继承或定制GUI时,对多线程设计容易产生更多的问题  3)性能问题以上仅供你参考