一. 線程與進程
進程是指運行中的程序,每個進程都有自己獨立的地址空間
線程是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程自己不擁有資源,但是它可與同屬一個進程的其他線程共享進程所擁有的全部資源。
線程知識要點:
1. 線程是輕量級進程
2. 線程沒有獨立的地址空間(內存空間)
3. 線程由進程創建
4. 一個進程可以有多個線程,多線程編程。
5. 線程的5種狀態:
a. new
b. Runnable
c. Running
d. Blocked
e. Dead
在java中要將一個類當作線程來運行有兩個辦法:
1. 該類繼承 Thread類,重寫run函數,start()
2. 該類繼承Runnable接口,重寫run函數,start()
使用方法2會比方法1要好,原因如下:
1. java的單繼承機制會使得繼承Thread類的類存在使用侷限。
2. 使用Runnable接口繼承能使多個線程共享同一段代碼段。如果程序有同步邏輯需求,建議使用Runnable方法創建線程。
java處理同步的機制:synchronized語句
synchronized(this)
{
//code
}
其中的code就是同步代碼段。
java同步機制的解釋:
synchronized(object){ } 裏面的object可以是任意類,synchronized通過更改 任意類型對象裏面的標誌位(包括0,1兩種狀態)實現線程加鎖。