main()函數即主函數,是一個前台線程,前台進程是程序中必須執行完成的,而后台線程則是java中所有前台結束后結束,不管有沒有完成,后台線程主要用與內存分配等方面。
前台線程和后台線程的區別和聯系:
前台線程和后台線程的區別和聯系:
1、后台線程不會阻止進程的終止。屬於某個進程的所有前台線程都終止后,該進程就會被終止。所有剩余的后台線程都會停止且不會完成。
2、可以在任何時候將前台線程修改為后台線程,方式是設置Thread.IsBackground 屬性。
3、不管是前台線程還是后台線程,如果線程內出現了異常,都會導致進程的終止。
4、托管線程池中的線程都是后台線程,使用new Thread方式創建的線程默認都是前台線程。
說明:
應用程序的主線程以及使用Thread構造的線程都默認為前台線程
使用Thread建立的線程默認情況下是前台線程,在進程中,只要有一個前台線程未退出,進程就不會終止。主線程就是一個前台線程。而后台線程不管線程是否結束,只要所有的前台線程都退出(包括正常退出和異常退出)后,進程就會自動終止。一般后台線程用於處理時間較短的任務,如在一個Web服務器中可以利用后台線程來處理客戶端發過來的請求信息。而前台線程一般用於處理需要長時間等待的任務,如在Web服務器中的監聽客戶端請求的程序,或是定時對某些系統資源進行掃描的程序
使用Thread建立的線程默認情況下是前台線程,在進程中,只要有一個前台線程未退出,進程就不會終止。主線程就是一個前台線程。而后台線程不管線程是否結束,只要所有的前台線程都退出(包括正常退出和異常退出)后,進程就會自動終止。一般后台線程用於處理時間較短的任務,如在一個Web服務器中可以利用后台線程來處理客戶端發過來的請求信息。而前台線程一般用於處理需要長時間等待的任務,如在Web服務器中的監聽客戶端請求的程序,或是定時對某些系統資源進行掃描的程序