Java的多進程與多線程總結

1、何爲程序?進程?線程?

        程序(program)是爲完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜態的代碼,靜態對象。
        進程(process)是程序的一次執行過程,或是正在運行的一個程序。動態過程:有它自身的產生、存在和消亡的過程。
        如:運行中的QQ,運行中的MP3播放器
        程序是靜態的,進程是動態的。線程(thread),進程可進一步細化爲線程,是一個程序內部的一條執行路徑。
        若一個程序可同一時間執行多個線程,就是支持多線程的。java

        

 

2、多線程的建立和啓動

        Java語言的JVM容許程序運行多個線程,它經過java.lang.Thread類來實現。多線程

        Thread類的特性
        每一個線程都是經過某個特定Thread對象的run()方法來完成操做的,常常把run()方法的主體稱爲線程體
經過該Thread對象的start()方法來調用這個線程。spa

        Thread類的構造方法
        Thread():建立新的Thread對象
        Thread(String threadname):建立線程並指定線程實例名
        Thread(Runnable target):指定建立線程的目標對象,它實現了Runnable接口中的run方法
        Thread(Runnable target, String name):建立新的Thread對象 線程

        建立線程的兩種方式
        方式一:繼承Thread類
             1)  定義子類繼承Thread類。
             2)  子類中重寫Thread類中的run方法。
             3)  建立Thread子類對象,即建立了線程對象。
             4)  調用線程對象start方法:啓動線程,調用run方法。
        方式二:實現Runnable接口
            1)定義子類,實現Runnable接口。
            2)子類中重寫Runnable接口中的run方法。
            3)經過Thread類含參構造器建立線程對象。
            4)將Runnable接口的子類對象做爲實際參數傳遞給Thread類的構造方法中。
            5)調用Thread類的start方法:開啓線程,調用Runnable子類接口的run方法。code

3、繼承方式和實現方式的聯繫與區別

 

public class Thread extends Object implements Runnable


        【區別】
            繼承Thread:       線程代碼存放Thread子類run方法中。
            實現Runnable:線程代碼存在接口的子類的run方法。
        【實現方法的好處】
            1)避免了單繼承的侷限性
            2)多個線程能夠共享同一個接口實現類的對象,很是適合多個相同線程來處理同一份資源。對象

4、 線程的調度

        

        線程的優先級控制
            MAX_PRIORITY(10);    
            MIN _PRIORITY (1);  
            NORM_PRIORITY (5);
        涉及的方法:
            getPriority() :返回線程優先值 
            setPriority(int newPriority) :改變線程的優先級
        線程建立時繼承父線程的優先級繼承

相關文章
相關標籤/搜索