建立執行緒有兩種方法:
1.thread
類的子類
建立執行緒,重寫run()方法。然後就可以使用該類建立物件也就是乙個執行緒,物件呼叫父類的start()方法執行緒開始執行。
2.public final stringgetname()
獲得執行緒的名字。
3.public final voidsetdaemon(boolean on)
設定執行緒為守護執行緒當系統沒有其他執行緒執行時及時守護執行緒沒有執行完也要結束退出。
3.public static voidsleep(long millis)方法設定執行緒休眠時間。
4.public static voidyield()方法可以設定執行緒在該時間片內臨時停止讓其他執行緒執行。
5.public final voidsetpriority(int newpriority)方法設定執行緒的優先順序從1-10優先順序依次增高。
6.public static threadcurrentthread()類方法可以獲得當前正在執行執行緒。
7.通過實現runnable介面建立執行緒。然後用runnable介面的實現類建立物件mythread mt=new mythread();再用thread類含有引數的構造方法去建立3個執行緒
new thread(mt).start(); new thread(mt).start(); new thread(mt).start();因為這三個執行緒使用同乙個物件建立的則都可以操作物件裡面的成員變數。如多個代售點同時售票。
8.當然這種也可以使用內部類繼承thread類實現
class mythread
}
}
thread getthread()
}
在主函式中mythread mt=new mythread()
mt.getthread().start();
mt.getthread().start();
mt.getthread().start();
mt.getthread().start();
因為每次呼叫mt.getthread().start();就會新建立乙個內部類的物件也就是乙個執行緒,又因為內部類可以操作外部類的變數和函式所以內部類產生的多個
執行緒物件改變的是同乙個物件的成員變數。
9.執行緒的同步問題,當一段**有乙個執行緒進去執行時我們就不希望再有其他的執行緒進去執行,這時我們就需要對這部分**加鎖及當乙個執行緒進去執行時就在這部分代
碼前加上鎖不讓其他程序進來,當這個執行緒執行完出去時就把鎖解開讓其它執行緒進來執行。
10.同步塊方法實現執行緒同步,用
synchronized(object obj)把要保護的**包起來,obj可以是任何乙個物件一般用this表示當前物件。
11.另乙個實現執行緒同步的方法時用同步方法,也就是說將要進行同步的**寫成乙個方法,再用synchronized關鍵字修飾這個方法也可以實現執行緒的同步。
12.靜態方法進行同步時所用的鎖是靜態方法所在的類對應的class物件的鎖。
13.每乙個物件除了有乙個鎖之外,還有乙個等待佇列(wait set),當物件剛建立時它的佇列的是空的,
我們應該在當前執行緒鎖住物件後,去呼叫該物件的wait方法把再來想進入同步塊裡面執行的程序放入等待佇列。
當物件呼叫notify方法時,將將從物件的等待佇列中刪除乙個任意選擇的執行緒,這個執行緒將再次成為可執行的執行緒。
當呼叫物件的notifyall方法時,將從該物件的等待佇列中刪除所有等待執行緒,這些執行緒將重新成為可執行執行緒。
wait和notify主要用於producer-consumer(生產者-消費者)關係中。
且wait,notify,notifyall方法都只能在同步塊或同步方法中出現。這三個方法屬於object類的方法。
14.public static booleaninterrupt()
方法是thread類的乙個靜態方法,當呼叫方法時可以是當前物件的執行緒中斷,退出執行與
public static voidyield()不同,yield方法只是讓執行緒在這個時間片暫停讓其它執行緒執行,當道下個時間片時就會繼續執行原來的執行緒。
java執行緒基礎
1.thread類 實現了runnable介面的類。在啟動多執行緒的時候 先是通過thread的構造方法thread runnabletarget 構造出物件,然後在通過thread中的start方法啟動 多執行緒的。2.執行緒的狀態 new 新建 runnable 可執行 running 執行中 ...
java執行緒基礎
1.執行緒 程式中的不同執行路徑 程序 靜態概念,機器上的乙個class檔案或者乙個exe檔案都可以被稱為乙個程序,本身不能動 同一時間點內乙個cpu只能有乙個執行緒起著 2.新建執行緒時,推薦使用implements runnable,方便拓展,且只需要重寫run方法 3.thread.start...
Java基礎執行緒
class dead implements runnable 實現runnable介面 else class locka class lockb class test2 thread方法常用引數介紹 run負責執行緒中執行的 thread string name 構造的時候,傳遞執行緒名 getna...