[b][color=blue]synchronized 特點[/color]:[/b] 兩個synchronized 方法,當乙個執行緒已經獲取鎖定,其它執行緒就不能再執行[color=red][b]同一例項[/b][/color]的synchronized 方法.
[b][color=red]非[/color][/b]synchronized 方法可以執行.
下面開始模擬死鎖現象
package com.apq.deadlock;
//餐具類
class tableware
public string tostring()
}class eaterthread extends thread
public void run()
}private void eat() }}
}public class main
}
[size=medium]結果:[/size]
apq抱著匙子不放,bob抱著叉子不放,誰也不能吃了
apq 左手拿了 [ 匙子 ]
apq 右手拿了 [ 叉子 ]
吃...
apq 左手拿了 [ 匙子 ]
bob 左手拿了 [ 叉子 ]
[size=medium]把鎖的粒度加大些,可以避免死鎖[/size]
package com.apq.deadlock;
//餐具類
class tableware
public string tostring()
}class pair
public string tostring()
}class eaterthread extends thread
public void run()
}private void eat() catch (interruptedexception e) }}
}public class main1
}
5 模擬線程切換
模擬 windows執行緒切換 threadswitch 正在執行的執行緒在kpcr裡,等待的執行緒在等待鍊錶中,排程中的執行緒在那32個排程鍊錶中。建立它是從下標1的位置開始存的而不是0,因為main需要乙個執行緒。建立的執行緒還不能排程還需要初始化的環境,暫存器的值 當前執行緒的堆疊要確定 模擬...
C語言 模擬線程池
題目 執行緒池 是一種多工處理模型,由乙個任務佇列和若干工作執行緒組成 任務佇列 任務佇列包含若干任務 1.每個任務包含指向任務資料的指標和處理該任務的函式指標 2.可以向任務佇列追加新任務 工作執行緒 每個工作執行緒執行乙個任務佇列處理函式 1.核心功能是從佇列中獲取乙個可用任務 1.如果佇列中有...
nodejs 模擬非同步執行,模擬線程暫停
模擬非同步執行,模擬線程暫停,這裡使用了 es7 中的async 和 await,如下 1 模擬線程暫停 2 const sleep function time time 7 8return promise 9 1011 async function asynctest i 16 i 17 awai...