From owner-FreeBSD-users-jp@jp.freebsd.org  Mon Oct 29 12:17:21 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id MAA68500;
	Mon, 29 Oct 2001 12:17:21 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from mfo01.iij.ad.jp (mfo01.iij.ad.jp [202.232.2.118])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id MAA68495
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 29 Oct 2001 12:17:21 +0900 (JST)
	(envelope-from okuyamak@dd.iij4u.or.jp)
Received: from dd.iij4u.or.jp (dd.iij4u.or.jp [210.130.0.14])
	by mfo01.iij.ad.jp (8.8.8/MFO1.3) with ESMTP id MAA26321
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 29 Oct 2001 12:17:20 +0900 (JST)
Received: from localhost (tennessee.yamato.ibm.com [203.141.89.166])
	by dd.iij4u.or.jp (8.8.8+2.2IIJ/4U1.1) with ESMTP id MAA06783
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 29 Oct 2001 12:17:20 +0900 (JST)
Date: Mon, 29 Oct 2001 12:17:05 +0900 (JST)
Message-Id: <20011029.121705.71086697.okuyamak@dd.iij4u.or.jp>
To: FreeBSD-users-jp@jp.freebsd.org
From: Kenichi Okuyama <okuyamak@dd.iij4u.or.jp>
In-Reply-To: <3BDCC0A5.35956.001@odin.j.asahi-net.or.jp>
References: <3BDCC0A5.35956.001@odin.j.asahi-net.or.jp>
X-Mailer: Mew version 2.0 pre3 on Emacs 20.7 / Mule 4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: FreeBSD-users-jp 65198
Subject: [FreeBSD-users-jp 65198] Re: pthread
 =?ISO-2022-JP?B?GyRCJSolVyU3JWclcyRyJEQkMSRrJEglUCU5JSgbKEI=?=
 =?ISO-2022-JP?B?GyRCJWkhPBsoQg==?= 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: okuyamak@dd.iij4u.or.jp

$B1|;3(B@IBM$B$G$9!#(B

>>>>> "YO" == Yoshihiro Ota <ota@j.email.ne.jp> writes:
YO> $B!V(Btest and set$B!WL?Na$,;H$($J$$$H8@$&$N$O!"%f!<%6%l%Y%k$G$NOC$G$9!#(B

$B$@$+$i$I$&$7$F$5!#!V(Btest and set $BL?Na!W$rFC8"%l%Y%kL?Na$K$7$J$/$F$O(B
$B$$$1$J$$M}M3$r=R$Y$h!"$H8@$C$F$k$8$c$s!#FC8"%l%Y%kL?Na$G$J$1$l$P!"%f!<(B
$B%6!<%l%Y%k$G$b(B($B%+!<%M%k%l%Y%k$G$bEvA3$@$,(B)$B;H$($k$K7h$^$C$F$$$k!#(B


$B$"$k%3%^%s%I$,FC8"%l%Y%kL?Na$H$7$F<BAu$7$J$/$F$O$$$1$J$$$N$O!"$=$l$,(B
$B$"$k$H(B CPU $B%G%6%$%J!<$,A[Dj$7$F$$$k2>A[%7%9%F%`4V$NJI$,%f!<%6!<%l%Y(B
$B%k$GGK2u$5$l$F$7$^$&$+$i$@!#5U$K8@$($P!"$I$s$JL?Na$G$"$C$F$b!"$3$N2>(B
$BDj$rGK2u$7$J$1$l$P$=$l$O%f!<%6!<%l%Y%kMxMQ$G$-$kL?Na$H$7$FDj5A$5$l$k!#(B



test and set $BL?Na$O(B mutex_trylock() $B$=$N$b$N$NF0:n$r$9$k!#=>$C$F!"(B
mutex_trylock() $B<+BN$O40A4$K%f!<%6!<B&$@$1$G<BAu2DG=$@!#(B

mutex_lock() $B$N<BAu$N>l9g!"(Block $B$r<h$l$J$1$l$P(B thread $B$O(B sleep $B$7$J(B
$B$/$F$O$$$1$J$$!#$=$7$F!"C/$+$,(B mutex $B$r2rJ|$7$?>l9g!"$=$N(B mutex $B$GBT$C(B
$B$F$$$k!V0l?M$@$1$,!W5/$-=P$7$F$/$l$J$$$H!":$$k!#(B
#$BA40w$rKh2s5/>2$5$;$k$H!"BgA{$.$,5/$k$N$O8@$&$^$G$b$J$$!#$?$@$7!"(B
#$B$=$l$G!V$$$1$J$$!W$o$1$G$O$J$$!#(B


$B$3$N!V2?$+$rBT$C$F$$$F!"$=$N2?$+$,Mh$?$i!"(Bpriority $B$N:G$b9b$$0l?M$,(B
$B5/$-$k!W$H$$$&5!9=$O(B pthread $B$G$O(B
			$B!X(Bcondition$B!Y(B
$B$H8@$&!#(Bcondition $B$O%9%1%8%e!<%i$N%5%]!<%HL5$7$K$O<BAu$G$-$J$$!#(B
$B=>$C$F!"(Buser thread $B$N>l9g$O(B thread scheduler library $B$,!"(Bkernel
thread $B$N>l9g$O(B OS $BB&$,!"%5%]!<%H$9$k!#(B

$B$7$+$7!"!V(BMutex $B$O!W(BOS $B$N%5%]!<%H$O0l@ZI,MW$H$7$J$$!#8zN($r5a$a$J$1(B
$B$l$P!"$I$&$H$G$b$J$k!#(B


YO> # $B%f!<%6%W%m%;%9$K%P%9$r%m%C%/$5$;$kEy$H$$$&!"J*M}E*;q8;$X$N%"%/%;%9$N(B
YO> # $B5v2D$r=P$9$3$H$O@5E}(B(?)$B$J(B OS $B$,$9$k$3$H$G$O$"$j$^$;$s!#(B

$B$3$l$O$b$O$dO@30!#(B

$B!X%P%9%m%C%/$@$1!Y!"!X%P%9%j%j!<%9$@$1!Y$H!"(B
$B!X%P%9$r%m%C%/$7!"=jDj$N:n6H$r$7!"%P%9$r2rJ|$9$k$H$$$&(BAtomic$B$JL?Na!Y(B
$B$OA4$/0c$&!#(B

$B8e<T$,%f!<%6!<%l%Y%k$G$G$-$J$$7W;;5!$O!"%a%b%j%"%/%;%9$NEY$K(B OS $B$,4X(B
$BM?$7$J$/$F$O$$$1$J$$!"$G$-B;$J$$$N7W;;5!$K$J$j$O$F$k$8$c$J$$$+!#(B

test and set $B$OL@3N$K8e<T$@!#(B


$B%O%C%-%j8@$($P!"B@ED$5$s$O$^$@!V%O!<%I%&%'%"!W$,H=$C$F$$$J$$!#(B

OS $B$rM}2r$9$k$K$O%O!<%I%&%'%"$NCN<1$,(B($B$b$A$m$s!"K\6H$N%O!<%I20$5$s$K(B
$B$O$H$&$F$$5Z$S$b$D$+$J$$$,!":GDc8B$G$b@)8fBP>]$H$7$F$N%O!<%I%&%'%"$N(B
$BCN<1$,(B)$BI,MW$K$J$k!#$3$l$O%3%s%Q%$%i$K$D$$$F$bF1MM!#(B

$B$3$l$,H=$i$J$$$+$i!"2?$,%O!<%I%&%'%"$G%5%]!<%H$,I,MW$G!"2?$,(B OS $B%l%Y(B
$B%k$G$N%5%]!<%H$G==J,$G!"2?$O%f!<%6!<%l%Y%k$G$b<B9T2DG=$+!"$N8+J,$1$,(B
$B$D$$$F$$$J$$!#(B
---- 
$B1|;3(B $B7r0l(B@$BEl5~4pAC8&5f=j(B.$BF|K\(BIBM($B3t(B)[$BGaGX2q(B:No.0x00000001]
#URL http://www.dd.iij4u.or.jp/~okuyamak/
#$B:#F|$N$*8@MU!XGaGX2q(B($B$P$$$O$$$+$$(B)$B!Y(B:$B$"$s$?!"GXCf$,Ga$1$F$k$<!"(B
#$B$H8@$&;v$r?.>r$H$9$k2q!#JV$jF$$A$K9g$&$N$O2D!#<+8J?=9p@)!#(B
#$BHV9f$,=EJ#$7$?>l9g$OBP@o$7$F!"$h$jB?$/S-$$$?J}$,>!$A(B($B$"$,$kI,MW$J$7(B)$B!#(B
