多執行緒練習

2021-10-19 13:53:05 字數 2524 閱讀 7704

問題:以下四個程式doother方法的執行需不需要等待dosome方法的結束?

程式1:

public

class

exam01

catch

(interruptedexception e)

t2.start()

;}}class

mythread

extends

thread

@override

public

void

run()if

(thread.

currentthread()

.getname()

.equals

("t2"))

}}class

myclass

catch

(interruptedexception e)

system.out.

println

("dosome over");

}public

synchronized

static

void

doother()

}

關於程式1,是需要的,因為synchronized是寫在靜態方法裡面的,所以此時synchronized是類鎖,不管建立幾個物件,乙個類只能有乙個鎖,所以需要等待

程式2:

public

class

exam01

catch

(interruptedexception e)

t2.start()

;}}class

mythread

extends

thread

@override

public

void

run()if

(thread.

currentthread()

.getname()

.equals

("t2"))

}}class

myclass

catch

(interruptedexception e)

system.out.

println

("dosome over");

}public

synchronized

void

doother()

}

關於程式2,不需要等待,因為myclass有兩個物件,兩個物件有兩把鎖,乙個鎖對應乙個synchronized,所以t1和t2各自執行各自的,不受睡眠影響

程式3:

public

class

exam01

catch

(interruptedexception e)

t2.start()

;}}class

mythread

extends

thread

@override

public

void

run()if

(thread.

currentthread()

.getname()

.equals

("t2"))

}}class

myclass

catch

(interruptedexception e)

system.out.

println

("dosome over");

}public

synchronized

void

doother()

}

關於程式3,需要,因為,myclass物件只有乙個,且doother和dosome都有synchronized,所以只有當dosome執行完,doother才能執行

程式4:

public

class

exam01

catch

(interruptedexception e)

t2.start()

;}}class

mythread

extends

thread

@override

public

void

run()if

(thread.

currentthread()

.getname()

.equals

("t2"))

}}class

myclass

catch

(interruptedexception e)

system.out.

println

("dosome over");

}public

void

doother()

}

關於程式4 不需要等待,因為doother沒有synchronized。

多執行緒練習

1 請在指定位置插入 實現列印輸出1 99。package com.company.deno class demo public void method 結束位置 thread t new thread a t.start 2 檢查 並修改 class test implements runnabl...

多執行緒練習2

多執行緒練習 兩個執行緒一起列印數從1到9,執行緒1列印所有不是3的倍數的數,執行緒2列印3的倍數。1.用互斥鎖 條件變數的方法 2.用訊號量的方法 中sleep的位置比較重要 1.用互斥鎖 條件變數的方法的 include include include pthread mutex t mutex...

多執行緒模擬練習

package pxyhomeworkday11 第二題 分析以下需求,並用 實現 有100份禮品,兩人 小剛和小明 同時傳送,當剩下的禮品小於10份的時候則不再送出,利用多執行緒模擬該過程並將執行緒的名稱列印出來.列印格式 小剛送出了禮物,還剩99份禮物。小剛送出了禮物,還剩98份禮物。小明送出了...