程序(program)是爲完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜態的代碼,靜態對象。
進程(process)是程序的一次執行過程,或是正在運行的一個程序。動態過程:有它自身的產生、存在和消亡的過程。
如:運行中的QQ,運行中的MP3播放器
程序是靜態的,進程是動態的。線程(thread),進程可進一步細化爲線程,是一個程序內部的一條執行路徑。
若一個程序可同一時間執行多個線程,就是支持多線程的。java
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
public class Thread extends Object implements Runnable
【區別】
繼承Thread: 線程代碼存放Thread子類run方法中。
實現Runnable:線程代碼存在接口的子類的run方法。
【實現方法的好處】
1)避免了單繼承的侷限性
2)多個線程能夠共享同一個接口實現類的對象,很是適合多個相同線程來處理同一份資源。對象
線程的優先級控制
MAX_PRIORITY(10);
MIN _PRIORITY (1);
NORM_PRIORITY (5);
涉及的方法:
getPriority() :返回線程優先值
setPriority(int newPriority) :改變線程的優先級
線程建立時繼承父線程的優先級繼承