It must be the last thread to finish execution. When the main thread stops, the program terminates.
上面这句话的这种说法对吗?如果对的话,那么为什么还有一种说法叫做后台进程,只要有1个后台线程在运行,这个进程就会结束。所以我想问,如果判断一个进程结束,是看main线程还是看后台线程?

解决方案 »

  1.   

    对的,判断一个进程结束看main进程.后台线程又叫守护线程 daemon threads.如果只有后台线程在运行,这个进程就会结束(When the only remaining threads in a process are daemon threads, the interpreter exits)
      

  2.   

    一个进程可以包含多个线程,线程是比进程进小的单位。
    问题是:如果只有后台线程在运行的时候,给人的感觉就是JAVA程序已经停止了。就像电脑上面所有的应用程序都关了。给客户的感觉就是电脑停着没有使用一样。
    It must be the last thread to finish execution. When the main thread stops, the program terminates.
    所以我觉得这句话是不对的,当MAIN线程结束之后,后台线程可以继续存在的。
      

  3.   

    当然是看main线程了。
    main是什么意思先说
      

  4.   

    我的理解是正过来说都对,反过来说判断一个程序结束看main线呈或者后台线呈,这样说就有问题了
      

  5.   

    It must be the last thread to finish execution. When the main thread stops, the program terminates.
    上面这句话的这种说法对吗?
    --------------------这个说法错误。JVM退出的标准是所有的非后台线程都结束时就退出Main Thread是一个非后台线程;new Thread().start()是一个非后台线程
    new Thread().setDeamon(true).start()是一个后台线程
    Main Thread的退出不意味着JVM的退出,JVM必须等待其它非后台线程的退出。
      

  6.   

    ChDw(米) 
    --------
    up ....