1、**最簡潔的、沒有處理異常、拋異常、使用synchronized函式。
一共2個類,
乙個類實現runnable介面,封裝列印數字及字母的方法。
另乙個類為測試類,測試類用匿名內部類重寫run方法,迴圈列印數字及字母。
2、處理異常、基本結構與第乙個一樣,在列印數字和字母的方法內部的時候略有不同。這裡面有三個題目,基本類似。
3、處理異常、synchronized塊,共享obj鎖。
一共3個類,
乙個測試類,定義共享物件obj,將執行緒任務物件作為引數傳遞給thread,呼叫執行緒物件的start方法。
乙個數字類,實現runnable介面,構造方法傳obj共享物件,重寫run方法列印數字。
乙個字母類,實現runnable介面,構造方法傳obj共享物件,重寫run方法列印字母。
4、處理異常、synchronized塊,共享obj鎖。使用tread類
一共3個類,結構基本與第三個一樣。
5、處理異常、lock鎖、執行緒池、內部類。
一共乙個類。
在這乙個類中,有乙個主方法,主方法定義了執行緒池物件,呼叫execute方法執行。
此類中還有兩個內部類,
乙個為runnablea,實現runnable介面,用來列印數字。
另乙個為runnableb,實現runnable介面,用來列印字母。
執行緒池及其方法execute()具體參考帖子:
execute的引數要傳入乙個runnable介面或其子類型別的引數。
複習內部類知識:
在類內的成員位置上定義非靜態的內部類。
在外部類的靜態方法當中訪問:
(1)建立外部類物件。 outer outer= new outer();
(2)建立內部類物件。建立內部類物件的時候需要使用外部類進行引導。 outer.inner inner = outer.new inner();
(3)通過內部類的物件呼叫內部類的方法:
因此,帖子中的主方法中 test.new runnablea()就可以理解了。
public static void main(string args)
6、最後這個帖子有5個版本,有跟我不一樣的幾個版本。
可以看下最後乙個,是用lock和condition來實現加鎖解鎖和等待喚醒。
執行緒是用runnable介面實現,而且不是用的普通建立匿名類的方法,而是用的lambda表示式,因為runnable也是個函式式介面。用執行緒池newcachedthreadpool來排程執行緒。
多執行緒迴圈列印
public class multithread implements runnable public static void main string args 實現run方法,將自定義執行緒的任務定義在run方法上 public void run 輸出結果 執行緒一列印a 執行緒二列印b 執行緒三...
多執行緒列印問題
最近面試遇到乙個多執行緒的題目,對方要求用多個執行緒列印abcabc 每個執行緒負責列印其中乙個字母。迴圈10次吧!public class test thread threads newthread 3 for int i 0 i threads.length i 列印執行緒 class prin...
多執行緒列印寶典
典中典多執行緒列印題,我來歸納一下 三個執行緒分別列印 a,b,c,要求這三個執行緒一起執行,列印 n 次,輸出形如 abcabcabc.的字串 這一招也是我最喜歡的,簡單無腦 public class main public static void main string args catch i...