java中如何結(jié)束一個程序 如何確保main()方法所在的線程是Java程序最后結(jié)束的線程?
如何確保main()方法所在的線程是Java程序最后結(jié)束的線程?要達到這種情況,我們必須知道以下幾點1。Java中的線程結(jié)束在run方法完成后自動結(jié)束2。在主線程(main thread)中,我們需要
如何確保main()方法所在的線程是Java程序最后結(jié)束的線程?
要達到這種情況,我們必須知道以下幾點
1。Java中的線程結(jié)束在run方法完成后自動結(jié)束
2。在主線程(main thread)中,我們需要獲取所有線程的引用。
3. 了解JDK提供的countdownlatch的用法
示例如下:
public static void main(string[]args)throws interruptedexception
{
//countdownlatch有幾個線程作為計數(shù)器記錄,例如,有兩個線程
countdownlatch latch=new countdownlatch(2)
worker Worker1=new worker(閂鎖)
worker worker2=new worker(閂鎖)
Worker1。Start()//開始線程
worker2。Start()//]//等待所有工人完成他們的工作等待()
系統(tǒng)輸出打?。ā八泄ぷ髟凇眘df.format格式(new Date())
}
類工作線程擴展
{
私有CountDownLatch閂鎖
公共工作線程(CountDownLatch閂鎖)
{這個。門閂=latch
}
公共void Run(){
xxxxx
//在run方法結(jié)束之前,將線程計數(shù)器減少一個倒數(shù)計時在Java程序中,可以使用java.lang.System系統(tǒng)但是使用exit方法的本質(zhì)是終止JVM的運行。如果另一個程序同時運行,使用exit方法也會終止程序,在這種情況下應該避免使用interrupt(),它可以用來中斷和退出正在運行的進程。對于多線程程序,必須關(guān)閉所有非守護進程。exit方法用于僅當程序異常退出時才退出程序。