[英]Java drawing a circle using awt,JFrame with Thread(Runnable) on Netbeans (Mac)
[英]Using existing Thread for Java AWT
有沒有一種方法可以將現有線程(尤其是主線程)用於AWT窗口。 我當前正在打開一個框架,然后處理所有內容,並且主線程只是暫停並等待窗口關閉。 對我來說,這似乎是(不是非常破壞性的)資源浪費,所以我將只對主線程使用AWT表示感謝。 是否有充分的理由不這樣做,如果沒有,是否有辦法做到?
只需讓主線程退出,就無需使其暫停並等待。
可以將線程標記為“守護程序”或不將其標記為。 僅當每個非守護程序線程都退出時,應用程序才退出。在Java中,Main線程除了首先啟動之外,實際上沒有任何特殊意義。
EDT線程不是守護程序線程,因此它將使應用程序自身保持活動狀態。
根據此文檔http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html
Java虛擬機啟動時,通常只有一個非守護線程(通常調用某些指定類的名為main的方法)。 Java虛擬機將繼續執行線程,直到發生以下任何一種情況:
已調用類Runtime的退出方法,並且安全管理器已允許進行退出操作。 不是守護程序線程的所有線程都已死,要么通過從調用返回到run方法,要么拋出傳播到run方法之外的異常。
故事的道德啟示 :
A Java program will wait for all non-daemon threads to finish first.
在您的情況下,您可能想退出主線程。
一個暫停的線程(如果實際上已經暫停)並不是什么大問題。 我建議您使用JProfiler之類的程序來查看程序,您會對后台發生的事情感到震驚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.