![]() |
VOOZH | about |
進程:運行一個程序,程序在內存分配了運行空間。在內存起了一個進程。
線程:在進程中運行。多個線程之間可以進行相互的切換。
主線程
子線程:子線程都是從主線程中分配出來的。2:主線程的重要性。
1:繼承Thread類:
2:實現Runable接口:
繼承Thread類與實現Runable接口的區別:
Java只支持單繼承,一旦一個類繼承了Thread類的話,就不能再繼承其它的類了。5:Thread.join方法:一個線程如果join了另一個線程,那麼這個線程就必須等另一個線程
A:當多個線程同時訪問一個資源時,會造成資源數據的不同步。因此要對資源加鎖。
這一加鎖的過程,就是在線程並發時,只有一個線程能夠訪問到該資源。因此叫做
線程的同步。
7:鎖的概念鎖住當前方法(當前變量)所在的對象和類。
9:怎麼實現線程同步:A:方法同步。
B:代碼塊同步:
方法同步與代碼塊同步的區別:
方法同步:鎖住當前方法所在的對象。因此執行整個方法直到完成,一直鎖住當前對象。
代碼塊同步:對象的鎖只在執行synchronized這一部分的代碼塊。其它的代碼塊也會出
現線程同步的問題。
synchronized (this) {
count = count + 1;
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace;
}
System.out.println("當前線程=" + Thread.currentThread.getName
+ ",Count值 =" + count);
}
System.out.println(count);
10:鎖的粗粒度:11:線程之間的協作:鎖的粗粒度只能在代碼塊同步中更改鎖的大小。方法的同步的是沒有辦法更改的。
wait;/notify;