Java 對象鎖-synchronized()與線程的狀態與生命週期與守護進程

synchronized(someObject){

//對象鎖
}

1、對象鎖 someObject 的使用說明:

一、對象鎖的返還。

      當synchronize()語句執行完成。html

      當synchronize()語句執行出現異常。java

      當線程調用了wait()方法。併發

二、使用對象鎖保護的數據都必須是私有的。

也就是說someObject 變量必須是privatejvm


三、對象鎖具備可重入性。

一個線程在已經得到對象鎖的狀況下,能夠再次請求得到對象鎖。spa


2、線程的生命週期

線程run()方法結束以後,這個線程就是死的了。可能會被回收了。操作系統


線程週期以及線程轉換能夠參考博文

http://blog.csdn.net/LonelyRoamer/article/details/7949969
.net

jvm 內幕報文參考

http://www.importnew.com/17770.html
線程

這裏所說的線程指程序執行過程當中的一個線程實體。JVM 容許一個應用併發執行多個線程。Hotspot JVM 中的 Java 線程與原生操做系統線程有直接的映射關係。當線程本地存儲、緩衝區分配、同步對象、棧、程序計數器等準備好之後,就會建立一個操做系統原生線程。Java 線程結束,原生線程隨之被回收。操做系統負責調度全部線程,並把它們分配到任何可用的 CPU 上。當原生線程初始化完畢,就會調用 Java 線程的 run() 方法。run() 返回時,被處理未捕獲異常,原生線程將確認因爲它的結束是否要終止 JVM 進程(好比這個線程是最後一個非守護線程)。當線程結束時,會釋放原生線程和 Java 線程的全部資源。code


3、守護進程

如今理解守護進程就是 不影響主線程中止的線程。即便守護進程一直在執行,可是主進程中止了,而且jvm程序裏面只有守護進程,那麼jvm 將會退出。以下就是例子:
htm

public class DaemonTest {

    public static void main(String[] args) {
        new WorkerThread().start();

        try {
            Thread.sleep(7500);
        } catch (InterruptedException e) {
            // handle here exception
        }

        System.out.println("Main Thread ending") ;
    }}class WorkerThread extends Thread {

    public WorkerThread() {
        // When false, (i.e. when it's a user thread),
        // the Worker thread continues to run.
        // When true, (i.e. when it's a daemon thread),
        // the Worker thread terminates when the main 
        // thread terminates.
        setDaemon(true); 
    }

    public void run() {
        int count = 0;

        while (true) {
            System.out.println("Hello from Worker "+count++);

            try {
                sleep(5000);
            } catch (InterruptedException e) {
                // handle exception here
            }
        }
    }}
運行結果爲:
Hello from Worker 0
Hello from Worker 1
Main Thread ending

當守護進程打印了第一行的時候,

睡了5秒,

接下來醒了,打印第二行。

接着又睡了

主線程也睡了。

總結來看,就是守護進程其實不受主進程死活的影響。只要JVM活着,不過調用該守護進程的主進程死活,守護進程均可以運行,可是若是JVM死了,那守護進程也掛了。

相關文章
相關標籤/搜索