From owner-java@jp.FreeBSD.org Mon Jul 22 12:20:28 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g6M3KSl84949;
	Mon, 22 Jul 2002 12:20:28 +0900 (JST)
	(envelope-from owner-java@jp.FreeBSD.org)
Received: from ongs.co.jp (ns.ongs.co.jp [202.216.232.58])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with SMTP/inet id g6M3KRn84944
	for <java@jp.FreeBSD.org>; Mon, 22 Jul 2002 12:20:27 +0900 (JST)
	(envelope-from daichi@jp.freebsd.org)
Received: (qmail 57258 invoked from network); 22 Jul 2002 03:16:47 -0000
Received: from unknown (HELO parancell.ongs.co.jp) (202.216.232.62)
  by ns.ongs.co.jp with SMTP; 22 Jul 2002 03:16:47 -0000
Date: Mon, 22 Jul 2002 12:21:16 +0900
From: daichi <daichi@jp.FreeBSD.org>
To: java@jp.FreeBSD.org
Message-Id: <20020722122116.218d7c4a.daichi@jp.freebsd.org>
In-Reply-To: <20020722.024117.74758272.yamasa@ec.catv.ne.jp>
References: <sqbptxl5atc.wl@nue.mac.com>
	<20020719.013920.74753632.yamasa@ec.catv.ne.jp>
	<20020719163614.7ec433a8.daichi@jp.freebsd.org>
	<20020722.024117.74758272.yamasa@ec.catv.ne.jp>
Organization: ONGS Inc.
X-Mailer: Sylpheed version 0.8.0 (GTK+ 1.2.10; i386-portbld-freebsd4.6)
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Reply-To: java@jp.FreeBSD.org
Precedence: list
X-Sequence: java 136
Subject: [java 136] Re: Java Memory Model
Errors-To: owner-java@jp.FreeBSD.org
Sender: owner-java@jp.FreeBSD.org
X-Originator: daichi@jp.FreeBSD.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+020717

$BBgCO$G$9!#(B

> 32-bit primitive$BJQ?t$X$NBeF~$O(Batomic$B$G$"$k$3$H$,J]>Z$5$l$F$$$^$9!#(B
> $B$=$N$?$a!"B>$N%9%l%C%I$+$i8+$?(BcachedHashCode$B$NCM$O(B0$B$+(B
> computeHashCode()$B$N7k2LCM$N$I$A$i$+$G!"$=$l0J30$NCM$r(B
> $B8+$k$3$H$O7h$7$F$J$$$N$G@5$7$/F0:n$9$k$o$1$G$9!#(B

$B$J$k$[$I!#(B

> > # $B$3$N%3!<%I$r%Y!<%9$K$7$?$i0l1~LdBj$r2sHr$G$-$k(BDCL$B$J5-=R$,$G(B
> > # $B$-$k$3$H$K$J$k$N$+$J!#(B
> 
> $B$$$$$(!"$G$-$^$;$s!#(B
> $B$"$/$^$G(Bprimitive$BJQ?t$@$+$i$&$^$/$$$/$N$G$"$C$F!"(Breference$BJQ?t$N(B
> $B>l9g$OJL$NJ}K!$r;H$&$7$+$"$j$^$;$s!#(B
> # $B>-MhE*$K(B64-bit primitive$BJQ?t$X$N%"%/%;%9$b(Batomic$B$H$J$k$h$&$K(B
> # $B=$@5$5$l$l$P!"(B64-bit primitive$BJQ?t$G$b(BDCL$B$,;H$($k$h$&$K(B
> # $B$J$j$^$9$,!D!#(B

# $B$9$_$^$;$s!#KM$NI=8=$K8lJ@$,$"$j$^$7$?!#(B
32bit int$B$J$i$3$N5-=RJ}K!$,E,MQ$G$-$k$o$1$G$9$h$M!#(B
$B$h$C$F%m%C%/$N@)8f$r(B32bit int$B$rMQ$$$F9T$C$F$d$l$P(B
(*$BNc$H$7$F5-=R$5$l$F$$$?%3!<%I$N$h$&$K(Bint$BJQ?t$r%m%C%/(B
$B$7$F$$$k$+H]$+$NH=CG:`NA$K$9$l$P(B*)$B0BA4$K(Bsynchronized
$B$,MxMQ$G$-$k$h$&$K$J$k!"$H9M$($?$N$G$9$,!"$3$l$O4V0c$C(B
$B$F$$$^$9$G$7$g$&$+!#(B

$B$s!<!)(B
32bit int$B$G=hM}$rCF$/$3$H$,$G$-$k$N$G$"$l$P!"$J$<(B
synchronized$B@a$r;H$&$N$+5?Ld$G$9$M!#$3$l$O(Bsynchronized$B$H(B
$BL@5-$9$k$3$H$G$=$N;]$r<($9$@$1$G!"<B:]$O$^$H$b$K5!G=$7(B
$B$J$$$s$G$9$h$M!#(B

> > P.S.
> > DCL$BLdBj$N=$@5(B(JMM$B$rL@3N$K$7$F<BAu$rLdBj$,=P$J$$$h$&$KJQ99(B)$B$C$F(B
> > $B8=:_$I$N>u67$K$"$k$+$4B8$8$NJ}$$$i$C$7$c$$$^$9$+!)(B
> 
> $B$=$b$=$b(BDCL$B<+BN$,IT@5$J%"%k%4%j%:%`$J$N$G$9$+$i!"(B
> $B$H$j$"$($:$=$l$,F0$/$h$&$K(BJava$B$N;EMM$r$M$86J$2$k$H$$$&$N$O(B
> $B$A$g$C$HJQ$@$H;W$$$^$9$h!#(B
> $BC1$K!"(BDCL$B$r;H$o$J$1$l$P$$$$$@$1$NOC$G$9!#(B

$B!)(B
$BKM$N(BDCL$B$KBP$9$kDj5A$NM}2r$,4V0c$C$F$$$k2DG=@-$,$G$F$-$^$7$?!#(B
$BKM$O(BDCL$B$r<!$N$h$&$KM}2r$7$F$$$^$7$?!#(B

  DCL: Double-Checked Locking

  $B0UL#(B:
  $B%^%k%A%9%l%C%I4D6-$K$*$1$kCY1d=i4|2=J}K!!#C<E*$K8@$&$H(B
  $B%a%=%C%IFb$N(Bsynchrinized$B@a$N$3$H!#(B

  $B8zG=(B:
  $B9=C[;~$K@8@.=hM}$r=8Cf$5$;$J$$$GCY1d=hM}$r9T$$9=C[=hM}(B
  $B;~$N=8Cf2=$rHr$1$k!#(B

  $BMxMQNc(B:
  $B%2%C%?!<%a%=%C%I$d%7%s%0%k%H%s%/%i%9$K$*$1$k@8@.%a%=%C(B
  $B%I$J$I!#(B

DCL$B$OC<E*$K$O(BJava$B$G$O%a%=%C%IFb$N(Bsynchrinized$B$@$H;W$C$F$$$?(B
$B$N$G$9$,!"Bg@P$5$s$N$4;XE&$+$i$_$^$9$K!"$3$l$O4V0c$C$F$$$k(B
$B$_$?$$$G$9$M!#(B
DCL$B$H$O2?$G$7$g$&$+(B? (DCL$B<+BN$,IT@5$J%"%k%4%j%:%`(B?)

# $B!V(BDCL$BLdBj$N=$@5!W$NItJ,$O!V%a%=%C%IFb$N(Bsynchrinized$B@a$,40A4(B
# $B$K0l$D$N%9%l%C%I$N$_$rF0:n$5$;:#$N<BAu$N$h$&$K=EJ#$7$FF0:n(B
# $B$9$k$3$H$,$J$$$h$&$K$9$k!W$H$$$&$3$H=R$Y$h$&$H$7$F$$$^$7$?!#(B

--
Daichi GOTO
    http://www.ongs.net/daichi, daichi@jp.freebsd.org

