1.繼承thread類(不推薦)
**很簡單,就不說了
publicclass
threadtest02
public
static
class userthread extends
thread
public
void
run()
}}
2.實現runable介面
publicclass
runabletest01
public
static
class userthread implements
runnable
}}
以上執行的結果:
結束。。。a run方法執行了
run和start的區別?
總結:呼叫start方法方可啟動執行緒,而run方法只是thread的乙個普通方法呼叫,還是在主線程裡執行。
1.資料不共享
新起三個不同的執行緒,對成員變數操作,互不影響
publicclass
threadsharetest01
public
static
class userthread extends
thread
system.out.println("count小於0了");}}
}
結果:
a 執行緒過來了,count變為:9a 執行緒過來了,count變為:8a 執行緒過來了,count變為:7a 執行緒過來了,count變為:6a 執行緒過來了,count變為:5a 執行緒過來了,count變為:4a 執行緒過來了,count變為:3a 執行緒過來了,count變為:2a 執行緒過來了,count變為:1a 執行緒過來了,count變為:0count小於0了b 執行緒過來了,count變為:9b 執行緒過來了,count變為:8b 執行緒過來了,count變為:7b 執行緒過來了,count變為:6b 執行緒過來了,count變為:5b 執行緒過來了,count變為:4b 執行緒過來了,count變為:3b 執行緒過來了,count變為:2b 執行緒過來了,count變為:1b 執行緒過來了,count變為:0count小於0了
c 執行緒過來了,count變為:9c 執行緒過來了,count變為:8c 執行緒過來了,count變為:7c 執行緒過來了,count變為:6c 執行緒過來了,count變為:5c 執行緒過來了,count變為:4c 執行緒過來了,count變為:3c 執行緒過來了,count變為:2c 執行緒過來了,count變為:1c 執行緒過來了,count變為:0count小於0了
2.資料共享
publicclass
threadsharetest02
public
static
class userthread extends
thread
}}
結果:有問題了!
a 執行緒過來了,count變為:8b 執行緒過來了,count變為:8
c 執行緒過來了,count變為:7
e 執行緒過來了,count變為:5
d 執行緒過來了,count變為:5
j 執行緒過來了,count變為:3
g 執行緒過來了,count變為:3
f 執行緒過來了,count變為:2
i 執行緒過來了,count變為:1
h 執行緒過來了,count變為:0
解決辦法?
最簡單的是在run方法加上synchronized,其實還有別的更高效的方法,後面會說到
publicsynchronized
void
run()
改善結果:
a 執行緒過來了,count變為:9b 執行緒過來了,count變為:8
d 執行緒過來了,count變為:7
e 執行緒過來了,count變為:6
c 執行緒過來了,count變為:5
g 執行緒過來了,count變為:4
h 執行緒過來了,count變為:3
i 執行緒過來了,count變為:2
j 執行緒過來了,count變為:1
f 執行緒過來了,count變為:0
ok!
C 併發程式設計 thread
c 11在標準庫中為多執行緒提供元件,使用執行緒需要包含標頭檔案 thread,其命名空間為 std.每個程序至少有乙個執行緒 執行main 函式的執行緒,其餘執行緒有其各自的入口函式 執行緒函式 當執行緒執行完執行緒函式後,執行緒也會退出.如果不傳入執行緒函式 類似這種形式std thread t...
C 併發程式設計之thread
std thread 在 標頭檔案中宣告,因此使用 std thread 時需要包含 標頭檔案。std thread 構造 注意 可被 joinable 的 thread 物件必須在他們銷毀之前被主線程 join 或者將其設定為 detached.示例 include include include...
Java併發程式設計 Thread類的使用 1
專案環境 專案中有乙個1分鐘輪詢的job,每次輪詢會啟動乙個執行緒 thread 但是會出現1分鐘內,這個執行緒的工作不能處理完畢,下乙個輪詢的執行緒就進來了,會造成資料多次處理。這不是我想要的 在這種環境下,考慮到需要使用synchronized 同步鎖 確保資料的的唯一性和準確性。定時處理批任務...