簡體   English   中英

使用現有的Java AWT線程

[英]Using existing Thread for Java AWT

有沒有一種方法可以將現有線程(尤其是主線程)用於AWT窗口。 我當前正在打開一個框架,然后處理所有內容,並且主線程只是暫停並等待窗口關閉。 對我來說,這似乎是(不是非常破壞性的)資源浪費,所以我將只對主線程使用AWT表示感謝。 是否有充分的理由不這樣做,如果沒有,是否有辦法做到?

只需讓主線程退出,就無需使其暫停並等待。

可以將線程標記為“守護程序”或不將其標記為。 僅當每個非守護程序線程都退出時,應用程序才退出。在Java中,Main線程除了首先啟動之外,實際上沒有任何特殊意義。

EDT線程不是守護程序線程,因此它將使應用程序自身保持活動狀態。

Java中的Daemon線程是什么?

根據此文檔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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM