如果我在不是EDT的单个线程上处理GUI,它仍然是线程安全的吗?

时间:2017-05-30 14:01:13

标签: java multithreading thread-safety event-dispatch-thread

如果我在不同的线程上创建GUI,并确保在该线程上发生GUI的任何更新而该线程只是 - 那么它仍然是线程安全的吗?我知道这很难确保,所以在某种程度上我有点问:与其他线程相比,EDT有什么特别/不同的东西吗?

请记住,我不是在问这个问题的良好实践或其他解决方案,我问的是,在纯粹的技术层面上,如果你基本上处理像EDT这样的线程,是否会在新的GUI上创建GUI线程可以安全使用吗?

1 个答案:

答案 0 :(得分:1)

它不是线程安全的,因为您的进程不是唯一一个读/写UI元素的进程。 JRE也是可读写的,但它是通过EDT实现的。因此,即使您在不是EDT的单个线程中读/写,也有在EDT中执行此操作的进程 - 因此您最终会得到一个UI元素,几个线程,没有同步。