java高階(二) 多執行緒

2021-08-30 11:13:56 字數 2307 閱讀 9365

即「最大限度的利用cpu資源」,當某一線程的處理不需要占用cpu而只和i/o等資源打交道時,讓需要占用cpu資源的其他執行緒有機會獲得cpu資源。

方法一:

通過繼承thread類建立執行緒

class mythread extends thread 

}}public class threadtest }}

}

方法二:

通過實現runnable介面建立執行緒

class myrunnable implements runnable 

}}public class threadtest }}

}

當然,還可以直接使用匿名內部類,方法十分簡便,僅需重寫run方法,例如:

/*

* 匿名內部類的格式:

*/public class threaddemo

}}.start();

;// 實現runnable藉口,建立多執行緒並啟動

new thread(new runnable()

}}) .start();

// 更有難度的,在thread匿名內部類的裡面再一次重寫run方法

//在實際執行時的結果是 hello+x。以thread的run方法為準。但是此處無意義

生命週期

執行緒同步是為了防止多個執行緒訪問乙個資料物件時,對資料造成破壞。

注意:用synchronized關鍵字宣告的靜態方法,同時只能被乙個執行執行緒訪問,但是其他執行緒可以訪問這個物件的非靜態方法。即:兩個執行緒可以同時訪問乙個物件的兩個不同的synchronized方法,其中乙個是靜態方法,乙個是非靜態方法。

//示例

public synchronized void addamount(double amount)

synchronized(this)

假設有這麼乙個問題,要求編寫兩個執行緒,乙個執行緒列印125,另乙個執行緒列印字母az,列印順序為12a34b56c……5152z,這就要求使用執行緒間的通訊,解決的方法有以下幾種:

死鎖

Java 多執行緒 二

執行緒安全問題 引出同步 塊 通過下面的例子,了解傳統多執行緒存在的執行緒安全隱患。需求 買票 四個視窗同時買票。class ticket implements runnable extends thread catch exception e system.out.println thread.c...

Java 高階 多執行緒快速入門

這世上有三樣東西是別人搶不走的 一是吃進胃裡的食物,二是藏在心中的夢想,三是讀進大腦的書 system.out.println 多執行緒建立開始 thread thread new thread new runnable thread.start system.out.println 多執行緒建立結...

Java 高階 多執行緒快速入門

這世上有三樣東西是別人搶不走的 一是吃進胃裡的食物,二是藏在心中的夢想,三是讀進大腦的書 class createthread extends thread publicclass threaddemo 複製 class createrunnable implements runnable publ...