我一直在阅读一些关于并发的文章(这让我很头疼)。
我了解您可以使用以下方法从主线程设置要在 EDT 上运行的任务:
SwingUtilities.invokeLater
但是你能设置一个任务在 EDT 的主线程上运行吗?
如:
Thread mymainthread=Thread.currentThread();//<referring to the thread that initially kicks off public static void main
public void mousePressed(MouseEvent e){ //queue a task to run on mymainthread }
可以做到吗?这是个坏主意吗?
与此类似的另一个问题(此处)谈到了创建一个新线程,但如果我的目标是单线程(+EDT)应用程序,继续使用主线程不是更安全、更简单吗?.......或者也许我把这一切都弄错了。
编辑:我应该解释的内容:我想创建可以在主线程上相互通信的对象(在慢循环中运行),所以我不希望它们中的任何一个在不同的线程、edt 或其他线程上实例化。