为什么要加EventQueue.invokeLater呢
导读:本文共856字符,通常情况下阅读需要3分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 比如下面的程序: importjava.awt.*; importjavax.swing.*; publicclassTest { publicstaticvoidmain(String[]args)... ...
目录
(为您整理了一些要点),点击可以直达。
原因:
Java'sGUIisstrictlysingle-threaded.
AllGUIrelatedthingsinjavashouldalwaysgothroughasinglethread.Thethreadisourlegendary"AWT-EventQueue-0".HenceallGUIrelatedactionsshouldnecessarilygothroughtheAWTEventthread.Ifnotsoyoumayendupinadeadlock.Forsmallprograms,thismightneverhappen.Butforahugejavaapplicationifyoutryframe.setVisible(true)kindofthinginmainthread,youwillsoonfindyourselfsearchinganewjob.WhatinvokeLater()doesistopostyourRunnableintheAWTthread'seventqueue.SothecodeinyourrunmethodwillbeexecutedintheAWT-Eventqueuethread.
大意是说,java的GUI都是的单线程,应该使用事件调度线程去执行,如果没意思使用事件调度线程的话,可能造成死锁。但是在小的程序中,这种现象(死锁)不会发生的;大的应用程序中才会出现这种现象!
为什么要加EventQueue.invokeLater呢的详细内容,希望对您有所帮助,信息来源于网络。