多執行緒案例1 奇偶交替輸出

2022-08-24 10:51:11 字數 841 閱讀 1075

嘗試寫了乙個奇偶交替輸出的demo,記錄一下問題:

原來的執行緒類是如下:

1

package

com.future.day0521;23

public

class

demo1 catch

(interruptedexception e) 22}

23}24thread.yield();25}

26}27}

2829

static

class even implements

runnable catch

(interruptedexception e) 43}

44}45thread.yield();46}

47}48}

4950

public

static

void main(string args) throws

interruptedexception

57 }

view code

執行結果是,卡在了odd:1,使用visualvm軟體,看到dump檔案中是even執行緒blocking了,卡在了獲取js的鎖上,然後把odd類修改一下

static

class odd implements

runnable

try

catch

(interruptedexception e)

}thread.yield();}}

}

view code

將js.wait移動到外面,**就可以正常執行了。深入原因沒有考慮,後面有時間研究一下

Java多執行緒交替輸出01010

1.先簡單了解多執行緒併發,同步和非同步的概念 多執行緒併發時,多個執行緒同時請求同乙個資源,必然導致此資源的資料不安全,a執行緒修改了b執行緒的處理的資料,而b執行緒又修改了a執行緒處理的數理。顯然這是由於全域性資源造成的,有時為了解 決此問題,優先考慮使用區域性變數,退而求其次使用同步 塊,出於...

多執行緒 交替輸出文字

用兩個執行緒,乙個輸出字母,乙個輸出數字,交替輸出1a2b3c4d5e6g class demo t1 t2 new thread t2 locksupport.park 阻塞當前的執行緒 locksupport.unpark 喚醒執行緒應用的領域,速度執行的快,執行的執行緒少的情況,自旋鎖需要占用...

多執行緒交替執行

場景 由於業務需要多執行緒併發操作,並且多執行緒之間是有一定的依賴關係,比如a執行緒儲存資料,b執行緒則解析資料,即b執行緒是需要在a 執行緒執行完之後才開始執行,同樣a執行緒儲存資料的也需要b執行緒對資料解析完成後才開始儲存新的資料,因此a與b兩個執行緒就形成了交替實現,當然具體情況比這個複雜一些...