java學習回顧---執行緒和同步程式碼塊

Aka Faker發表於2020-12-06

執行緒

在這裡插入圖片描述
在這裡插入圖片描述
Start與run的區別:
在這裡插入圖片描述
在這裡插入圖片描述
區域性變數在每一個執行緒中均有一份(見下圖x),想讓多個執行緒共享一個資料那麼得把那個資料用private static修飾(見賣票程式)
在這裡插入圖片描述
在這裡插入圖片描述

Runnable

在這裡插入圖片描述
當子類已經繼承了一個父類,卻又需一個執行緒的時候,就實現runnable介面。
在這裡插入圖片描述
Runnable介面實現多執行緒例項:
在這裡插入圖片描述
在這裡插入圖片描述
使用runnable來實現多執行緒,還可以做到讓多個執行緒共用一個資料,比如上例中的四個執行緒因為建立時輸入的都是t這個變數,所以他們共用了一個tick。

同步程式碼塊及同步函式

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
同步函式:與同步程式碼塊同功能,只不過作為修飾放在函式的字首
在這裡插入圖片描述
在這裡插入圖片描述在這裡插入圖片描述

在這裡插入圖片描述
同步程式碼塊用的鎖是指定物件,即synchronized()括號裡指定的物件。如果在一個程式碼裡同步程式碼塊和同步函式共享了一個資料,為了安全最好使兩個的鎖相同。
在這裡插入圖片描述

相關文章