Tag: worker

如何在Java中创建“事件驱动的”后台线程?

我喜欢invokeLater()的简单性,用于将工作单元发送到AWT EDT。 有一个类似的机制可以将工作请求发送到后台线程(例如SwingWorker),但据我所知,这些机制没有任何类型的事件排队和调度机制,这是invokeLater()所依赖的。 所以相反,我最终给我的后台线程一个阻塞队列,其他线程向其发送消息,并且线程实际上运行一个接收循环,阻塞直到消息到达。 事实上,这可能正是人们如何在后台线程中实现类似EDT的行为(或者它会是什么?)。 另一方面,我喜欢简单地悬挂在那里的线程的简单性,只要碰巧从天空中某些看不见的事件调度队列发送到它就处理“工作水滴”。 Java是否提供了创建这种“事件驱动的工作线程”的方法? 毕竟,消息排队是正确的方法吗? 在相关的情况下,消息传递的invokeLater()技术有缺点吗?