!""#$%%&''()*(+*,'&+('-.
!
!"#"$%&'()**+'(,$-- ."#"/)012/(&'()**+'0
!"#$%&'( )*+,%-./'$"
- /0)*(+*,'&+('-.
!"#$%&'())*+,#)'-%$#').+/01&2+"#$)34 506%$)7+-,#'8)9%--)*.2#"#"8)9"%0:);+#&<
!"#"$%&'()**+'(,$-- ."#"/)012/(&'()**+'0 - - PowerPoint PPT Presentation
!""#$%%&''()*(+*,'&+('-. !"#"$%&'()**+'(,$-- ."#"/)012/(&'()**+'0 !"#$%&'( )*+,%-./'$" -/0)*(+*,'&+('-. !"#$%&'())*+,#)'-%$#').+/01&2+"#$)34
!
!"#$%&'())*+,#)'-%$#').+/01&2+"#$)34 506%$)7+-,#'8)9%--)*.2#"#"8)9"%0:);+#&<
"
#
$
%
G1'D+>H
6+4-:/+)DEC 6+4-:.2/+)DEC ?++/'72:"31/+)DEC 2',F+2-4"4+2EC 6+4-:7,74"EC 6+4-:*4&27/EC ((( ?++/'72:7--EG:HC G:#+//EC:((( 6+4-:#."EG:HC G:"7D'ECI:((( 6+4-:'H')."'EJ.227?/':3C
G1'D+>JH 9**",JH BC+()0&* N++'0*"'0G&(D J2&(D1'=H)+)+VBW H)+)+VBW %&22+(01&'VBW %&'>101&' G&(D
E?*+">:&&2BC+()0&*
8:&'"EC ?++/'72:)72)'/EC (((
O)0)*+VEW N+">S*10+G&(D 8+@"7?&*+ %,(21(J"**1+*
8(?+>)2+>BC+()0&* 90&@1(;'0+=+*
&
'
:*&=*"@@+*$B55&*0 8,60+@$:+*5&*@"'(+
!1'&+, :+:3-+.>%:@
(
)
!*
::#.?/4):*"7"4):6+4-:B742EO"342&UV:73&*C:"!3+,*:GH)'#"4+2:K ::::GH')."+3:#++/:W:GH')."+3*(2',Q4H'-8!3'7-P++/EXCI ::::O'36'3O+)D'":*+)D'":W:2',:O'36'3O+)D'"EYYYYCI ::::A+3:EIIC:K ::::::A427/:O+)D'":)+22')"4+2:W:*+)D'"(7))'#"ECI ::::::#++/('H')."'E2',:J.227?/'EC:K ::::::::#.?/4):6+4-:3.2EC:K ::::::::::2',:Z72-/'3EC(#3+)'**E)+22')"4+2CI ::::::::LLCI ::::L ::L ::*"7"4):)/7**:Z72-/'3:K:6+4-:#3+)'**EO+)D'":*CI:L L
!!!
!"
!#
!$
: )/7**:;##:K:%%:((( :::GH')."+3O'364)':'H'):W:(((I:::::::%%:721:'H')."+3 :::<B7&'J'2-'3'3:3'2-'3'3:W:2',:<B7&'J'2-'3'3ECI :::#.?/4):6+4-:-4*#/71EA427/:?1"'UV:37,4B7&'C:K :::::"31:K :::::::Q.".3'M<B7&'N:4B7&':W:'H')(*.?B4"E2',:F7//7?/'ECK :::::::::#.?/4):>?@')":)7//EC:K: :::::::::::3'".32:3'2-'3'3(3'2-'3E37,<B7&'CI: :::::::::LLCI : :::::::-37,]+3-'3*ECI:%%:-+:+"!'3:"!42&*:,!4/':'H')."42& :::::::-37,F7#"4+2ECI :::::::-37,<B7&'E4B7&'(&'"ECCI:%%:.*':A.".3' :::::L :::::)7")!:EGH)'#"4+2:'HC:K: :::::::)/'72.#ECI:: :::::L :::L: L:
!%
$$6,'(?*&'1F+>P$5&&$\a $$$bb$+C+()0+$(&>+$4?12+$?&2>1'=$5&&`6$2&(D c
$$$bb$+C+()0+$&7d$4?12+$?&2>1'=$e0?16`$2&(D c
!&
!'
!(
:::::::A427/:42":4-I :::::::O".#4-E42":4C:K:2',:8!3'7-E"!4*C(*"73"ECI:4-:W:4I:L :::::::#.?/4):6+4-:3.2EC:K:O1*"'B(+."(#342"/2E4-CI:L :::::L
!)
"*
"!
""
"#
"$
"%
"&
"'
"(
")
#*
Status: signal-me, cancellation, condition
Assign after CAS
#!
first queued threads barging thread tryAcquire ...
#"
!"#$%&' ()%*+%& !)+',
/"%. 67 68 9 :6 :; <7 =8 ;6 ;; 86 <> 6: <6 :6 :? @7 66A 9= 6?9 66; 6B 9? @? =8 A; @B 6<< 8< 6?? 66= 8B 6A? 8: 6?: 6<: <@B 6A6 8@ 6?8 669
!"#$%&' ()%*+%& !)+',
/"%. 67 =<6 @A A; 8:<; <7 9:? 6?8 6:< 6@9A; <> ;@8 ;9 8@ ::96? @7 66@A 688 <@; 6=:<8 6B 8;9 6=: 6;; @6:9@ @B <=9? :@; :A8 :???@ 8B 6<;@ 6=; 6;@ :6?8@ <@B 698: 6A? 68< :<<96
##
D ; ;C E < <C E F FC E G GC E E EC E H HC E I IC E J JC E K KC E ; D LDC; LDCDE D DCDE DC; DC;E DC< DC<E DCF DCFE DCG DCGE DCE DCEE DCH DCHE DCI
Sparc Uniprocessor
DCDDJ DCD;H DCDF; DCDHF DC;<E DC<ED DCEDD ;CDDD
&"$<%895'(:. &"$<%)1"/:"/3
D ; ;C E < <C E F FC E G GC E E EC E H HC E I IC E J JC E K KC E ; D D DCE ; ;CE < <CE F FCE G GCE E
Dual hyperthread Xeon / linux
DCDDJ DCD;H DCDF; DCDHF DC;<E DC<ED DCEDD ;CDDD
&"$<%895'(:. &"$<%)1"/:"/3
D ; ;C E < <C E F FC E G GC E E EC E H HC E I IC E J JC E K KC E ;D DCDDD DCEDD ;CDDD ;CEDD <CDDD <CEDD FCDDD FCEDD GCDDD GCEDD
Dual P3/linux
DCDDJ DCD;H DCDF; DCDHF DC;<E DC<ED DCEDD ;CDDD
&"$<%895'(:. &"$<%)1"/:"/3
D ; ;C E < <C E F FC E G GC E E EC E H HC E I IC E J JC E K KC E ;D D DCE ; ;CE < <CE F FCE G GCE
24-way Ultrasparc 3
DCDDJ DCD;H DCDF; DCDHF DC;<E DC<ED DCEDD ;CDDD
&"$<%895'(:. &"$<%)1"/:"/3
#$
::42"'3A7)':b.'.'MGN:'H"'2-*:F+//')"4+2MGN:::K:%%:((( ::?++/'72:+AA'3EG:HCI ::G:#+//ECI ::G:#''DECI L ::42"'3A7)':]/+)D42&b.'.'MGN:'H"'2-*:b.'.'MGN:K:%%:((( ::6+4-:#."EG:HC:"!3+,*:<2"'33.#"'-GH)'#"4+2I ::G:"7D'EC:"!3+,*:<2"'33.#"'-GH)'#"4+2I ::?++/'72:+AA'3EG:H9:/+2&:"4B'+."9:84B'T24":.24"CI ::G:#+//E/+2&:"4B'+."9:84B'T24":.24"CI L
#%
)/7**:S+&e34"'3:K: ::#3467"':]/+)D42&b.'.'MO"342&N:B*&b:W: ::::2',:S42D'-]/+)D42&b.'.'MO"342&NECI ::#.?/4):6+4-:,34"'_'**7&'EO"342&:B*&C:"!3+,*:<G:K ::::B*&b(#."EB*&CI ::L ::%%:3.2:42:?7)D&3+.2-:"!3'7- ::#.?/4):6+4-:/+&O'36'3EC:K: ::::"31:K ::::::A+3EIIC:K ::::::::O1*"'B(+."(#342"/2EB*cb("7D'ECCI ::::::L: ::::L ::::)7")!E<2"'33.#"'-GH)'#"4+2:4'C:K:(((:L: ::L L
#&
)/7**:]+.2-'-].AA'3MGN:4B#/'B'2"*:b.'.'MGN:K:%%:((( ::S+)D:/+)D:W:2',:J''2"372"S+)DECI ::F+2-4"4+2:2+"Q.//::W:/+)D(2',F+2-4"4+2ECI: ::F+2-4"4+2:2+"GB#"1:W:/+)D(2',F+2-4"4+2ECI: ::>?@')"UV:4"'B*:W:2',:>?@')"U^ddVI ::42":#."#"39:"7D'#"39:)+.2"I ::#.?/4):6+4-:#."EG:HC"!3+,*:<G:K ::::/+)D(/+)DECI:"31:K ::::::,!4/':E)+.2":WW:4"'B*(/'2&"!C2+"Q.//(7,74"ECI ::::::4"'B*U#."#"3V:W:HI: ::::::4A:Eff#."#"3:WW:4"'B*(/'2&"!C:#."#"3:W:dI ::::::ff)+.2"I ::::::2+"GB#"1(*4&27/ECI ::::L:A427//1:K:/+)D(.2/+)DECI:L ::L ::#.?/4):G:"7D'EC:"!3+,*:<G:K ::::/+)D(/+)DECI:"31:K ::::::,!4/':E)+.2":WW:dC:2+"GB#"1(7,74"ECI ::::::>?@')":H:W:4"'B*U"7D'#"3VI: ::::::4A:Eff"7D'#"3:WW:4"'B*(/'2&"!C:"7D'#"3:W:dI ::::::gg)+.2"I ::::::2+"Q.//(*4&27/ECI ::::::3'".32:EGCHI:: ::::L:A427//1:K:/+)D(.2/+)DECI:L L:L:bb$./)/(/9**",J2&(D1'=H)+)+$(2"66$16$"2&'=$0?+6+$21'+6
#'
#(
M(.' N1$"5249O P"3.#O'5 M1"0A23$ 75":#0'5 M1"0A23$Q 82O'"#4Q P1'(3#R
#)
F/))L
M6 M<
F/))L
$*
F/))L
O"2 F/))L P0Q F/))L
F6 F<
$!
$"
F/))L
M6 M< M:
M6 M< M:
$#
F/))L
M6 M< M:
M:
M<
$$
M6 M< M:
M:
O"2 F/))L P0Q F/))L
$%
$&
@A @A
:*&>)(+*-%&'6)@+*$h"'>&55
D ;DDDD <DDDD FDDDD GDDDD EDDDD HDDDD ; < F G H J ;< ;H <G F< GJ HG :"1*6 '6b0*"'65+* %)>3095"3"#.T#'#' %)>3095"3"#.T#'#'U@(25V %)>3095"3"#.T#'#';CH %)>3095"3"#.T#'#';CHU@(25V %W(3."3)T
@A
$'
E?*+">:&&2BC+()0&*$p8:9N%q
D ;DDDD <DDDD FDDDD GDDDD EDDDD HDDDD ; < F G H J ;< ;H <G F< GJ HG 0?*+">6 '6b0"6D %)>3095"3"#.T#'#' %)>3095"3"#.T#'#'U@(25V %)>3095"3"#.T#'#';CH %)>3095"3"#.T#'#';CHU@(25V
$(
$)
X'(:%"6'59'(: X'(:%.0(123$ Y524'%"6'59'(: Y524'%.0(123$ P"(5.'L$5(23':%1"0A. Medium Worst Medium Worst S23'L$5(23':%1"0A. Worst Medium Worst OK X'(:Y524'%1"0A. Medium So-so Medium Bad P"30#55'341>%5'(:(?1' Best Very good Medium Not-so-bad
Good Good Best Risky &"0AL@5'' Good Best OK Best
%*
%!
%"
%#
%$
%%
%&
E?*+">/()**+'0E?*+">P\/1'0+**)70P\Z
%'