# YARV $B$N(B thread $B$K$D$$$F(B

**URL:** <https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664>\
**Category:** Development\
**Created:** [January 28, 2007, 4:20pm UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664 "2007-01-28T16:20:51Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [January 28, 2007, 4:20pm UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664/1 "2007-01-28T16:20:51Z")

</div>

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

Ruby/Tk e$B$Ne(B YARV e$BBP1~$G$9$,!$e(Btcltklib.c e$B$K$\*$1$ke(B Tcl/Tk  
wrapper e$B$Ne(B  
e$B:,K$N@oN,$+$i$7$F:n$jD\>$5$M$P$J$i$J$$$h$&$G$9!%e(B

## e$B$G!$$I$N$h$&$K$9$Y$-$+H=CG$9$k\>e$G!$e(BYARV e$B$G$Ne(B thread e$B$K$D$$$Fe(B e$B\>/$73NG’$H\<ALd$r$5$;$F$$$?$@$-$?$$$H;W$$$^$9!%e(B

- e$B8=:\_$Ne(B YARV e$B$Oe(B Thread model 2  
e$B$G$"$j!$$"$k;~E@$G2TF/\>uBV$K$"$ke(B  
thread e$B$O0l$D$@$1$H$$$&$3$H$G$9$h$M!)e(B

- e$B\>e5-$,@5$7$$$H$7$F!$\>-Mh!$e(BThread model 1 e$B$de(B 3  
e$B$,:n$j9~$^$l$k$3$H$Oe(B  
e$B$I$NDxEYA[Dj$7$F$_$1$PNI$$$G$7$g$&$+!)e(B  
e$B!J!VHf3SE_6a$$\>-Mh$K!W$H$+!$!VEvLL$OM=Dj$,$J$$!W$H$+!%!%!%!Ke(B

- e$B8=:\_$Ne(B YARV e$B$G$O$9$Y$F$Ne(B thread e$B$,I,$:0l$D$Ne(B native  
thread e$B$Ke(B  
e$BBP1~$9$k$H$$$&$3$H$G$h$m$7$$$G$7$g$&$+!)e(B

- e$BAH$\_9~$`%i%$%V%i%jB&$G?7$?$Je(B native thread  
e$B$,:n@.$5$l$?\>l9g!$e(B  
e$B$=$Ne(B native thread e$B$+$ie(B Ruby  
e$B$r8F$V$3$H$O2DG=$G$9$+!)e(B  
e$BIT2DG=$G$O$J$$\>l9g!$$I$N$h$&$J=hM}$r@h$K8F$s$G$\*$/I,MW$,$"$j$^$9$+!)e(B

- e$B%i%$%V%i%jB&$G:n@.$5$l$?e(B native thread  
e$B$,JBNsF0:n$r$7$h$&$H$9$k\>l9g!$e(B  
e$BCm0U$9$Y$-$3$H$O$I$N$h$&$J$3$H$G$7$g$&$+!)e(B  
e$B!Je(BThread e$B%_%V%8%’%/%H$H$7$F$N4IM}30$J$N$G!$e(BRuby  
e$BB&$N%j%=!\<%9$Ke(B  
e$B?($l$J$$8B$j$OLdBj$J$7$@$H$+!$Ak8}e(B thread  
e$B$r0l$DMQ0U$7$Fe(B  
e$B$=$l$r7PM3$9$k$h$&$K$7$J$1$l$P$J$i$J$$$H$+!$e(B  
e$B$3$l$3$l$KCm0U$7$J$$$H$_$+$7$J$3$H$K$J$k$H$+!%!%!%!Ke(B

- Thread model 2 e$B$N\>l9g!$e(Bthread  
e$B@Z$jBX$($N%?%$%\_%s%0%3%s%H%m!\<%k$O!$e(B  
e$B$3$l$^$G$HF1MM!$$"$k0lDj$N=hM}e(B (YARV\_CHECK\_INTS()?)  
e$B$,8F$P$l$?:]$Ke(B  
e$B@Z$jBX$o$k$H$$$&9M$(J}$G$h$$$N$G$7$g$&$+!)e(B  
e$B$=$N\>l9g!$%i%$%V%i%jB&$G$O$I$N=hM}$r8F$Y$PNI$$$N$G$7$g$&$+!)e(B  
yarvcore.h e$B$re(B include e$B$7$Fe(B YARV\_CHECK\_INTS()  
e$B$r8F$V$H$$$&$3$H$Ke(B  
e$B$J$k$N$G$7$g$&$+!)e(B

- e$B=\>Mh$Ne(B thread  
e$B$O@Z$jBX$($N%3%9%H$,$+$J$jBg$-$+$C$?$o$1$G$9$,!$e(B  
YARV e$B$G$O$I$NDxEY$G$7$g$&$+!)e(B  
e$BNc$($P!$e(BTk e$B$N=hM}BT$A%$%Y%s%H$,B8:_$7$J$1$l$P\>o$KB(:B$Ke(B  
thread e$B$re(B  
e$B@Z$jBX$($F$bLdBj$J$$$+!$$=$l$H$b@Z$jBX$($,IQHK$@$H:$$k$N$Ge(B  
e$B\>/$7$N4V%$%Y%s%HBT$A$r;n$_$F$+$i@Z$jBX$($k$h$&$K$9$Y$-$+$J$I$G$9!%e(B

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [January 29, 2007, 2:28am UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664/2 "2007-01-29T02:28:31Z")

</div>

e$B!!$5$5$@$G$9!#e(B

Hidetoshi NAGAI wrote:

> Ruby/Tk e$B$Ne(B YARV e$BBP1~$G$9$,!$e(Btcltklib.c e$B$K$\*$1$ke(B Tcl/Tk wrapper e$B$Ne(B  
> e$B:,K$N@oN,$+$i$7$F:n$jD\>$5$M$P$J$i$J$$$h$&$G$9!%e(B
> 
> e$B$G!$$I$N$h$&$K$9$Y$-$+H=CG$9$k\>e$G!$e(BYARV e$B$G$Ne(B thread e$B$K$D$$$Fe(B  
> e$B\>/$73NG’$H\<ALd$r$5$;$F$$$?$@$-$?$$$H;W$$$^$9!%e(B

e$B!!\<ALd$r$^$H$a$F$/$@$5$C$F$"$j$,$H$&$4$6$$$^$9!#e(B

> * * *
> 
> - e$B8=:\_$Ne(B YARV e$B$Oe(B Thread model 2 e$B$G$"$j!$$"$k;~E@$G2TF/\>uBV$K$"$ke(B  
> thread e$B$O0l$D$@$1$H$$$&$3$H$G$9$h$M!)e(B

e$B!!$O$$!#e(B

> - e$B\>e5-$,@5$7$$$H$7$F!$\>-Mh!$e(BThread model 1 e$B$de(B 3 e$B$,:n$j9~$^$l$k$3$H$Oe(B  
> e$B$I$NDxEYA[Dj$7$F$_$1$PNI$$$G$7$g$&$+!)e(B  
> e$B!J!VHf3SE_6a$$\>-Mh$K!W$H$+!$!VEvLL$OM=Dj$,$J$$!W$H$+!%!%!%!Ke(B

e$B!!0l1~!“e(Bmodel 3  
e$B$K$D$$$F$O;n:n$7$?$b$N$,$”$j$^$9!#$"$H$O3005!J$d$C$Q$jJBe(B  
e$BNs$KF0$+$J$$$H$J$!!"$H$+!K$H3’$N$d$k5$!J0l?M$G$d$k$K$O$A$g$C$H$D$i$$!K$de(B  
e$B%j%=!\<%9!J$I$C$+$N2q\<R$K$h$C$F\<h$jAH$`$H$+!K$K$h$k$+$H;W$$$^$9!#e(B

e$B!!e(Bmodel 1  
e$B$O!"$3$l$b3005!J%M%$%F%#%V%9%l%C%I$&$\<!\<$h!\*!!$H$$$&@\<!K$K$h$ke(B  
e$B$+$H;W$$$^$9!#$3$C$A$O8=:\_$b=PMh$F$$$k$3$H$+$i!"$b$7$+$7$?$i\>/$7$,$s$P$le(B  
e$B$PBP1~$G$-$k$+$b!"$H$$$&$H$3$m$G$9!#e(B

> - e$B8=:\_$Ne(B YARV e$B$G$O$9$Y$F$Ne(B thread e$B$,I,$:0l$D$Ne(B native thread e$B$Ke(B  
> e$BBP1~$9$k$H$$$&$3$H$G$h$m$7$$$G$7$g$&$+!)e(B

e$B!!$O$$!#e(B

> - e$BAH$\_9~$`%i%$%V%i%jB&$G?7$?$Je(B native thread e$B$,:n@.$5$l$?\>l9g!$e(B  
> e$B$=$Ne(B native thread e$B$+$ie(B Ruby e$B$r8F$V$3$H$O2DG=$G$9$+!)e(B  
> e$BIT2DG=$G$O$J$$\>l9g!$$I$N$h$&$J=hM}$r@h$K8F$s$G$\*$/I,MW$,$"$j$^$9$+!)e(B

e$B!!8=\>u$G$OIT2DG=$G$9!#e(B

e$B!!$"$s$^$jBP:v$O9M$($F$$$J$$$s$G$9$,!"$=$&$$$&e(B API  
e$B$rMQ0U$9$k$3$H$O2DG=e(B  
e$B$G$9!#$=$N:]$O!"$A$g$C$HLLE]$J@)Ls$,F~$k$+$b$7$l$^$;$s!#e(B

> - e$B%i%$%V%i%jB&$G:n@.$5$l$?e(B native thread e$B$,JBNsF0:n$r$7$h$&$H$9$k\>l9g!$e(B  
> e$BCm0U$9$Y$-$3$H$O$I$N$h$&$J$3$H$G$7$g$&$+!)e(B  
> e$B!Je(BThread e$B%_%V%8%’%/%H$H$7$F$N4IM}30$J$N$G!$e(BRuby e$BB&$N%j%=!\<%9$Ke(B  
> e$B?($l$J$$8B$j$OLdBj$J$7$@$H$+!$Ak8}e(B thread e$B$r0l$DMQ0U$7$Fe(B  
> e$B$=$l$r7PM3$9$k$h$&$K$7$J$1$l$P$J$i$J$$$H$+!$e(B  
> e$B$3$l$3$l$KCm0U$7$J$$$H$_$+$7$J$3$H$K$J$k$H$+!%!%!%!Ke(B

e$B!!e(BRubye$BB&%j%=!\<%9$K?($l$J$$8B$j$OBg\>fIW$@$H;W$$$^$9!#$?$H$($P!“C\<E\*$JNc$re(B  
e$B8@$&$H!“4I3m30%M%$%F%#%V%9%l%C%I$N%^%7%s%9%?%C%/$Oe(BGCe$BBP\>]$G$O$”$j$^$;$s!#e(B  
e$BAk8}e(BRubye$B%9%l%C%I$r$R$H$DMQ0U$9$k$N$,3Z$J$N$G$O$J$$$+$J$!!”$H;W$$$^$9!#e(B

> - Thread model 2 e$B$N\>l9g!$e(Bthread e$B@Z$jBX$($N%?%$%\_%s%0%3%s%H%m!\<%k$O!$e(B  
> e$B$3$l$^$G$HF1MM!$$"$k0lDj$N=hM}e(B (YARV\_CHECK\_INTS()?) e$B$,8F$P$l$?:]$Ke(B  
> e$B@Z$jBX$o$k$H$$$&9M$(J}$G$h$$$N$G$7$g$&$+!)e(B

e$B!!$=$&$G$9!#e(B

> e$B$=$N\>l9g!$%i%$%V%i%jB&$G$O$I$N=hM}$r8F$Y$PNI$$$N$G$7$g$&$+!)e(B  
> yarvcore.h e$B$re(B include e$B$7$Fe(B YARV\_CHECK\_INTS() e$B$r8F$V$H$$$&$3$H$Ke(B  
> e$B$J$k$N$G$7$g$&$+!)e(B

e$B!!%i%$%V%i%jB&$G!V%9%l%C%I@Z$jBX$($rH/@8$5$;$k$K$O!W2?$r8F$Y$P$$$$$+!"$Ge(B  
e$B$9$+$M!#e(Brb\_thread\_schedule()  
e$B$r8F$V$H!"$H$j$"$($:@Z$jBX$($F$/$l$^$9!#e(B  
e$B$,!“e(Bruby  
e$B%3!\<%I$,Av$k%?%$%\_%s%0$GDj4|E\*$K@Z$jBX$(=hM}$,Av$k$N$G!”$"$s$^e(B  
e$B$jI,MW$O$J$$$+$b$7$l$^$;$s!#%i%$%V%i%jB&$GD9;~4V%V%m%C%/$7$F$7$^$&:]$K$Oe(B  
e$BI,MW$,$"$k$+$b$7$l$^$;$s!#e(B

> - e$B=\>Mh$Ne(B thread e$B$O@Z$jBX$($N%3%9%H$,$+$J$jBg$-$+$C$?$o$1$G$9$,!$e(B  
> YARV e$B$G$O$I$NDxEY$G$7$g$&$+!)e(B  
> e$BNc$($P!$e(BTk e$B$N=hM}BT$A%$%Y%s%H$,B8:_$7$J$1$l$P\>o$KB(:B$Ke(B thread e$B$re(B  
> e$B@Z$jBX$($F$bLdBj$J$$$+!$$=$l$H$b@Z$jBX$($,IQHK$@$H:$$k$N$Ge(B  
> e$B\>/$7$N4V%$%Y%s%HBT$A$r;n$_$F$+$i@Z$jBX$($k$h$&$K$9$Y$-$+$J$I$G$9!%e(B

e$B!!@Z$jBX$($N%3%9%H$Oe(B OS  
e$B$d%7%9%F%`%=%U%H%&%’%"$K$h$j$^$9!#$D$^$j!"%M%$e(B  
e$B%F%#%V%9%l%C%I=hM}5!9=$N%9%l%C%I@Z$jBX$($N@-G=$K$h$j$^$9!#7P83E\*$K$O!"=\>e(B  
e$BMh$Ne(BRubye$B$N%9%l%C%I@Z$jBX$($h$j$b?oJ,$H9bB.$K$J$C$F$$$^$9!#e(B

e$B!!$H$/$K!"=\>Mh$Ne(BRubye$B=hM}7O$O%9%?%C%/$N%3%T!\<$,H/@8$9$k$?$a!"%9%?%C%/$N?\<e(B  
e$B$5$KHfNc$7$?@Z$jBX$(;~4V$,I,MW$G$7$?$,!"e(BYARVe$B$G$ODj?t;~4V$G%9%l%C%I@Z$jBXe(B  
e$B$($r9T$&$3$H$,4|BT$G$-$^$9!#e(B

> e$B!V\<ALd$N;EJ}$,0-$/$F0UL#$,$o$+$i$J$$!W$H$$$&\>l9g$O$\*?R$M2\<$5$$!%e(B  
> e$B$^$H$^$j$,$J$/$F?=$7Lu$"$j$^$;$s$,!$$h$m$7$/$\*4j$$CW$7$^$9!%e(B

e$B!!$$$d!"BgJQEz$($d$9$+$C$?$G$9!#F|K\8l$@$7e(B ^^;

e$B!!$^$?2?$+$"$l$P$4\<ALd$/$@$5$$!#e(B

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [January 29, 2007, 8:41am UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664/3 "2007-01-29T08:41:58Z")

</div>

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

e$B2sEz$r$"$j$,$H$&$4$6$$$^$9!%e(B

From: SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: [ruby-dev:30202] Re: YARV e$B$Ne(B thread e$B$K$D$$$Fe(B  
Date: Mon, 29 Jan 2007 10:27:56 +0900  
Message-ID: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> e$B!!0l1~!“e(Bmodel 3 e$B$K$D$$$F$O;n:n$7$?$b$N$,$”$j$^$9!#$“$H$O3005!J$d$C$Q$jJBe(B  
> e$BNs$KF0$+$J$$$H$J$!!”$H$+!K$H3’$N$d$k5$!J0l?M$G$d$k$K$O$A$g$C$H$D$i$$!K$de(B  
> e$B%j%=!\<%9!J$I$C$+$N2q\<R$K$h$C$F\<h$jAH$`$H$+!K$K$h$k$+$H;W$$$^$9!#e(B
> 
> e$B!!e(Bmodel 1 e$B$O!“$3$l$b3005!J%M%$%F%#%V%9%l%C%I$&$\<!\<$h!\*!!$H$$$&@\<!K$K$h$ke(B  
> e$B$+$H;W$$$^$9!#$3$C$A$O8=:\_$b=PMh$F$$$k$3$H$+$i!”$b$7$+$7$?$i\>/$7$,$s$P$le(B  
> e$B$PBP1~$G$-$k$+$b!"$H$$$&$H$3$m$G$9!#e(B

model 1 e$B$O$3$l$^$G$Ne(B Ruby e$B$Ne(B thread e$B$H$[$\F1$8$He(B  
e$B9M$($F$h$$$N$G$9$h$M!)e(B

e$B%3%s%Q%$%k;~$K!$;XDj$5$l$?e(B Thread model e$B$,$I$l$G$"$k$+$re(B  
e$BH=Dj$9$k%^%/%mDj?t$OMQ0U$5$l$^$9$+!)e(B  
e$B$G$-$l$P%9%/%j%W%H$+$i$be(B Thread model e$B$N3NG’$,$G$-$?J}$,e(B  
e$B4r$7$$$N$G$9$,!%!%!%e(B

# tcltklib e$B$N\>l9g!$e(Bmodel 1

e$B$G$"$l$P=\>Mh$N@oN,$r\<h$i$M$P$J$i$J$$$7!$e(B

# model 2 or 3 e$B$G$"$l$P?7$7$$@oN,$r$H$i$M$P$J$i$J$$$b$N$G!%e(B

> > - e$B%i%$%V%i%jB&$G:n@.$5$l$?e(B native thread e$B$,JBNsF0:n$r$7$h$&$H$9$k\>l9g!$e(B  
> > e$BCm0U$9$Y$-$3$H$O$I$N$h$&$J$3$H$G$7$g$&$+!)e(B  
> > e$B!Je(BThread e$B%_%V%8%'%/%H$H$7$F$N4IM}30$J$N$G!$e(BRuby e$BB&$N%j%=!\<%9$Ke(B  
> > e$B?($l$J$$8B$j$OLdBj$J$7$@$H$+!$Ak8}e(B thread e$B$r0l$DMQ0U$7$Fe(B  
> > e$B$=$l$r7PM3$9$k$h$&$K$7$J$1$l$P$J$i$J$$$H$+!$e(B  
> > e$B$3$l$3$l$KCm0U$7$J$$$H$_$+$7$J$3$H$K$J$k$H$+!%!%!%!Ke(B
> 
> e$B!!e(BRubye$BB&%j%=!\<%9$K?($l$J$$8B$j$OBg\>fIW$@$H;W$$$^$9!#$?$H$($P!“C\<E\*$JNc$re(B  
> e$B8@$&$H!“4I3m30%M%$%F%#%V%9%l%C%I$N%^%7%s%9%?%C%/$Oe(BGCe$BBP\>]$G$O$”$j$^$;$s!#e(B  
> e$BAk8}e(BRubye$B%9%l%C%I$r$R$H$DMQ0U$9$k$N$,3Z$J$N$G$O$J$$$+$J$!!”$H;W$$$^$9!#e(B

e$B$=$&$&$^$/JRIU$$$F$/$l$l$P$$$$$N$G$9$,e(B (^\_^;e$B!$e(B  
Tk e$BB&$+$i$N%3!\<%k%P%C%/=hM}$NCf$G$5$i$Ke(B Tk  
e$BB&$r8F$S=P$9%1!\<%9$J$I$Ge(B  
e$B$d$C$+$$$J$3$H$K$J$j$=$&$G$9!%e(B

Tk e$B$OFCDj$Ne(B native thread e$B$G$7$+2TF/$7$^$;$s$+$ie(B  
(e$B$G$be(B Tcl e$B%Q!\<%H$Oe(B native thread e$B$N@8@.$b$G$-$l$Pe(B  
e$BJBNs\<B9T$b9T$o$l$k2DG=@-$,$“$ke(B)e$B!$e(B  
e$BJL$Ne(B native thread e$B$+$iA`:n$7$?$$\>l9g$Oe(B  
Tk e$B$Ne(B native thread e$B$Ne(B event queue  
e$B$KAw$j9~$s$GBT$A$KF~$j!$e(B  
e$B=hM}7k2L$rAw$jJV$7$F$b$i$C$?8e$KI|5”$J$I$H$9$k$3$H$K$J$k$H;W$$$^$9!%e(B  
e$B$D$^$j!$e(BTk e$B$Ne(B native thread e$B$Ne(B event loop  
e$B$NDd;\_$O876X$G$9!%e(B

Tk e$B$Ne(B native thread e$B\>e$G%3!\<%k%P%C%/=hM}$,\<B9T$5$l!$e(B  
Ruby e$BB&$N=hM}$r4^$a$F0l$D$Ne(B native thread  
e$B\>e$G407k$9$l$P$$$$$N$G$9$,!$e(B  
e$B$b$7%3!\<%k%P%C%/=hM}$KJLe(B thread e$B$,4X$o$C$F!VBT$A!W$N\>uBV$,e(B  
e$B@8$8$F$7$^$&$H8G$^$C$F$7$^$$$^$9!%e(B

e$B$3$l$^$G$O%P%C%/%"%C%W$H$J$ke(B event loop e$B$rJLe(B thread  
e$B$K:n$C$Fe(B  
e$BBP=h$7$F$$$?$N$G$9$,!$:#2s$O$3$N\<j$,;H$($J$$$N$Ge(B  
e$B$I$&$7$h$&$+$J$!$H!%!%!%e(B

> > e$B$=$N\>l9g!$%i%$%V%i%jB&$G$O$I$N=hM}$r8F$Y$PNI$$$N$G$7$g$&$+!)e(B  
> > yarvcore.h e$B$re(B include e$B$7$Fe(B YARV\_CHECK\_INTS() e$B$r8F$V$H$$$&$3$H$Ke(B  
> > e$B$J$k$N$G$7$g$&$+!)e(B
> 
> e$B!!%i%$%V%i%jB&$G!V%9%l%C%I@Z$jBX$($rH/@8$5$;$k$K$O!W2?$r8F$Y$P$$$$$+!“$Ge(B  
> e$B$9$+$M!#e(Brb\_thread\_schedule() e$B$r8F$V$H!”$H$j$“$($:@Z$jBX$($F$/$l$^$9!#e(B  
> e$B$,!“e(Bruby e$B%3!\<%I$,Av$k%?%$%\_%s%0$GDj4|E\*$K@Z$jBX$(=hM}$,Av$k$N$G!”$”$s$^e(B  
> e$B$jI,MW$O$J$$$+$b$7$l$^$;$s!#%i%$%V%i%jB&$GD9;~4V%V%m%C%/$7$F$7$^$&:]$K$Oe(B  
> e$BI,MW$,$"$k$+$b$7$l$^$;$s!#e(B

Tk e$B$Ne(B event loop e$B$+$iB\>$Ne(B thread  
e$B$X$N@Z$jBX$($N$?$a$KI,MW$G$9!%e(B

# mode 3 e$B$G$Oe(B OS e$B$Ne(B native thread

e$B@Z$jBX$($KG$$;$-$k$N$Ge(B

# e$B%3%s%H%m!\<%k$NI,MW$O$J$$e(B (e$B$G$-$J$$e(B)

e$B$H$$$&G’\<1$G$$$$$N$G$9$h$M!)e(B

e$B5-210c$$$G$J$1$l$P!$=\>Mh$Ne(B CHECK\_INTS() e$B$Oe(B  
e$BCY1d=hM}$5$l$F$$$?3d$j9~$_=hM}$N\<B9T$bF1;~$K9T$&$b$N$@$C$?$H;W$$$^$9$,!$e(B  
YARV e$B$G$Oe(B rb\_thread\_schedule() e$B$N8F$S=P$7$@$1$G==J,$G!$e(B  
e$B3d$j9~$_=hM}$NJ}$O5$$K$7$J$/$F$bNI$$$N$G$7$g$&$+!)e(B

> e$B!!@Z$jBX$($N%3%9%H$Oe(B OS e$B$d%7%9%F%`%=%U%H%&%'%“$K$h$j$^$9!#$D$^$j!”%M%$e(B  
> e$B%F%#%V%9%l%C%I=hM}5!9=$N%9%l%C%I@Z$jBX$($N@-G=$K$h$j$^$9!#7P83E\*$K$O!"=\>e(B  
> e$BMh$Ne(BRubye$B$N%9%l%C%I@Z$jBX$($h$j$b?oJ,$H9bB.$K$J$C$F$$$^$9!#e(B
> 
> e$B!!$H$/$K!“=\>Mh$Ne(BRubye$B=hM}7O$O%9%?%C%/$N%3%T!\<$,H/@8$9$k$?$a!”%9%?%C%/$N?\<e(B  
> e$B$5$KHfNc$7$?@Z$jBX$(;~4V$,I,MW$G$7$?$,!"e(BYARVe$B$G$ODj?t;~4V$G%9%l%C%I@Z$jBXe(B  
> e$B$($r9T$&$3$H$,4|BT$G$-$^$9!#e(B

e$B=\>Mh$[$I$K$O5$$K$9$kI,MW$O$J$$$1$l$I$b!$e(BThread model 2  
e$B$N\>l9g$O!$e(B  
e$BG0$N$?$a$KD4@0%Q%i%a!\<%?$OMQ0U$7$F$\*$$$?J}$,NI$$$H$$$&$3$H$N$h$&$G$9$M!%e(B

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [February 4, 2007, 9:04pm UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664/4 "2007-02-04T21:04:15Z")

</div>

e$B!!$5$5$@$G$9!%e(B

Hidetoshi NAGAI wrote:

> model 1 e$B$O$3$l$^$G$Ne(B Ruby e$B$Ne(B thread e$B$H$[$\F1$8$He(B  
> e$B9M$($F$h$$$N$G$9$h$M!)e(B

e$B!!$O$$!%$^$@1F$b7A$b$J$$$N$G$O$C$-$j$O$$$($J$$$s$G$9$,!%e(B

> e$B%3%s%Q%$%k;~$K!$;XDj$5$l$?e(B Thread model e$B$,$I$l$G$"$k$+$re(B  
> e$BH=Dj$9$k%^%/%mDj?t$OMQ0U$5$l$^$9$+!)e(B  
> e$B$G$-$l$P%9%/%j%W%H$+$i$be(B Thread model e$B$N3NG’$,$G$-$?J}$,e(B  
> e$B4r$7$$$N$G$9$,!%!%!%e(B

e$B!!$A$g$C$H9M$($F$\_$^$9!%$,!$$$$A$$$A%9%l%C%I%b%G%k$r5$$K$7$J$$$H$$$1$J$$e(B  
e$B$N$OBgJQ$=$&$G$9$M!%$J$s$+E}0lE\*$J2r7h$,$"$l$P$$$$$s$G$9$,!%e(B

> e$B$D$^$j!$e(BTk e$B$Ne(B native thread e$B$Ne(B event loop e$B$NDd;\_$O876X$G$9!%e(B
> 
> Tk e$B$Ne(B native thread e$B\>e$G%3!\<%k%P%C%/=hM}$,\<B9T$5$l!$e(B  
> Ruby e$BB&$N=hM}$r4^$a$F0l$D$Ne(B native thread e$B\>e$G407k$9$l$P$$$$$N$G$9$,!$e(B  
> e$B$b$7%3!\<%k%P%C%/=hM}$KJLe(B thread e$B$,4X$o$C$F!VBT$A!W$N\>uBV$,e(B  
> e$B@8$8$F$7$^$&$H8G$^$C$F$7$^$$$^$9!%e(B
> 
> e$B$3$l$^$G$O%P%C%/%"%C%W$H$J$ke(B event loop e$B$rJLe(B thread e$B$K:n$C$Fe(B  
> e$BBP=h$7$F$$$?$N$G$9$,!$:#2s$O$3$N\<j$,;H$($J$$$N$Ge(B  
> e$B$I$&$7$h$&$+$J$!$H!%!%!%e(B

e$B!!e(Btcl/tk  
e$B$rNI$/CN$i$J$$$G8@$&$s$G$9$,!$40A4$KBP1~$5$;$k$N$O$I$A$i$bIT9,e(B  
e$B$J5$$,$7$^$9!%e(B

> Tk e$B$Ne(B event loop e$B$+$iB\>$Ne(B thread e$B$X$N@Z$jBX$($N$?$a$KI,MW$G$9!%e(B
> 
> # mode 3 e$B$G$Oe(B OS e$B$Ne(B native thread e$B@Z$jBX$($KG$$;$-$k$N$Ge(B
> 
> # e$B%3%s%H%m!\<%k$NI,MW$O$J$$e(B (e$B$G$-$J$$e(B) e$B$H$$$&G’\<1$G$$$$$N$G$9$h$M!)e(B
> 
> e$B5-210c$$$G$J$1$l$P!$=\>Mh$Ne(B CHECK\_INTS() e$B$Oe(B  
> e$BCY1d=hM}$5$l$F$$$?3d$j9~$_=hM}$N\<B9T$bF1;~$K9T$&$b$N$@$C$?$H;W$$$^$9$,!$e(B  
> YARV e$B$G$Oe(B rb\_thread\_schedule() e$B$N8F$S=P$7$@$1$G==J,$G!$e(B  
> e$B3d$j9~$_=hM}$NJ}$O5$$K$7$J$/$F$bNI$$$N$G$7$g$&$+!)e(B

e$B!!3d$j9~$\_=hM}$r5/$3$9$h$&$K$7$F$"$C$?$h$&$J!%e(B

> e$B=\>Mh$[$I$K$O5$$K$9$kI,MW$O$J$$$1$l$I$b!$e(BThread model 2 e$B$N\>l9g$O!$e(B  
> e$BG0$N$?$a$KD4@0%Q%i%a!\<%?$OMQ0U$7$F$\*$$$?J}$,NI$$$H$$$&$3$H$N$h$&$G$9$M!%e(B

e$B!!$J$s$N%Q%i%a!\<%?$G$9$+!)e(B

[ruby-dev:30253] Re: YARV e$B$Ne(B thread e$B$K$D$$$Fe(B

> > e$B!!$"$s$^$jBP:v$O9M$($F$$$J$$$s$G$9$,!"$=$&$$$&e(B API e$B$rMQ0U$9$k$3$H$O2DG=e(B
> > 
> > > e$B$G$9!#$=$N:]$O!"$A$g$C$HLLE]$J@)Ls$,F~$k$+$b$7$l$^$;$s!#e(B
> 
> e$B5U$Ke(B Ruby e$B$r8F$V$3$H$,e(B _e$B$G$-$J$$e(B_ e$B$h$&$Je(B native thread e$B$G$"$k$+$re(B  
> e$B%A%’%C%/$9$k$?$a$N8x\<0$JJ}K!$O$"$j$^$;$s$+!)e(B  
> e$BI,MW$b$J$$$N$Ke(B native thread e$B$r$^$?$0$N$OL5BL$G$9$N$G!$e(B  
> e$BDc%3%9%H$G%A%’%C%/2DG=$J$i!$$=$l$rMxMQ$9$kJ}$,K\>$^$7$$$H;W$$$^$7$F!%e(B

e$B!!$&!\<$s!%C\<E\*$K8@$&$HL5M}$8$c$J$$$+$H;W$$$^$9!%e(B

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [February 4, 2007, 2:28pm UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664/5 "2007-02-04T14:28:36Z")

</div>

e$B1J0fe(B@e$BCNG=!%6e9)Bg$G$9!%e(B

e$BEY!9$G?=$7Lu$J$$$N$G$9$,!$e(B

From: SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: [ruby-dev:30202] Re: YARV e$B$Ne(B thread e$B$K$D$$$Fe(B  
Date: Mon, 29 Jan 2007 10:27:56 +0900  
Message-ID: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > - e$BAH$\_9~$`%i%$%V%i%jB&$G?7$?$Je(B native thread e$B$,:n@.$5$l$?\>l9g!$e(B  
> > e$B$=$Ne(B native thread e$B$+$ie(B Ruby e$B$r8F$V$3$H$O2DG=$G$9$+!)e(B  
> > e$BIT2DG=$G$O$J$$\>l9g!$$I$N$h$&$J=hM}$r@h$K8F$s$G$\*$/I,MW$,$"$j$^$9$+!)e(B
> 
> e$B!!8=\>u$G$OIT2DG=$G$9!#e(B
> 
> e$B!!$“$s$^$jBP:v$O9M$($F$$$J$$$s$G$9$,!”$=$&$$$&e(B API e$B$rMQ0U$9$k$3$H$O2DG=e(B  
> e$B$G$9!#$=$N:]$O!"$A$g$C$HLLE]$J@)Ls$,F~$k$+$b$7$l$^$;$s!#e(B

e$B5U$Ke(B Ruby e$B$r8F$V$3$H$,e(B _e$B$G$-$J$$e(B_ e$B$h$&$Je(B native  
thread e$B$G$“$k$+$re(B  
e$B%A%'%C%/$9$k$?$a$N8x\<0$JJ}K!$O$”$j$^$;$s$+!)e(B  
e$BI,MW$b$J$$$N$Ke(B native thread e$B$r$^$?$0$N$OL5BL$G$9$N$G!$e(B  
e$BDc%3%9%H$G%A%'%C%/2DG=$J$i!$$=$l$rMxMQ$9$kJ}$,K\>$^$7$$$H;W$$$^$7$F!%e(B

[ruby-dev:30205] e$B$N\<ALd$H9g$o$;$F!$e(B  
e$B\<j$N6u$$$?$H$-$K$G$b65$($F$$$?$@$1$k$H=u$+$j$^$9!%e(B

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [February 5, 2007, 3:06am UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664/6 "2007-02-05T03:06:40Z")

</div>

e$B1J0f!wCNG=!%6e9)Bg$G$9!%e(B

e$B2sEz$r$"$j$,$H$&$4$6$$$^$9!%e(B

From: SASADA Koichi [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: [ruby-dev:30256] Re: YARV e$B$Ne(B thread e$B$K$D$$$Fe(B  
Date: Mon, 5 Feb 2007 05:03:36 +0900  
Message-ID: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > e$B%3%s%Q%$%k;~$K!$;XDj$5$l$?e(B Thread model e$B$,$I$l$G$"$k$+$re(B  
> > e$BH=Dj$9$k%^%/%mDj?t$OMQ0U$5$l$^$9$+!)e(B  
> > e$B$G$-$l$P%9%/%j%W%H$+$i$be(B Thread model e$B$N3NG’$,$G$-$?J}$,e(B  
> > e$B4r$7$$$N$G$9$,!%!%!%e(B
> 
> e$B!!$A$g$C$H9M$($F$\_$^$9!%$,!$$$$A$$$A%9%l%C%I%b%G%k$r5$$K$7$J$$$H$$$1$J$$e(B  
> e$B$N$OBgJQ$=$&$G$9$M!%$J$s$+E}0lE\*$J2r7h$,$"$l$P$$$$$s$G$9$,!%e(B

e$B5$$K$7$F$$$k$N$O%$%Y%s%H%k!\<%W$+$i$N@Z$jBX$(%?%$%\_%s%0$N@)8f$G$9!%e(B

model 2 e$B$G$OL@\<(E\*$K@Z$jBX$($F$d$i$J$$$H$$$1$J$$$G$9$,!$e(B  
e$B;G$C$?OC$K4p$E$/$H!$$"$^$j$KIQHK$K@Z$jBX$($k$H%l%9%]%s%9$,e(B  
e$B0-$/$J$j$=$&$G$9$N$G!$\>/$79)IW$,5a$a$i$l$=$&$G$9!%e(B

e$B$=$l$KBP$7$Fe(B model 3 e$B$G$O$=$&$7$?@)8f$OC1$J$kL5BL$G!$e(B  
e$B!V$$$D@Z$jBX$o$k$+$o$+$i$J$$!W$H$$$&A0Ds$G$NBP1~$,I,MW$G$9!%e(B

e$B$G!$!V%b%G%k$N3NG’$,$G$-$?J}$,4r$7$$$J!W$H!%e(B

e$B$b$A$m$sEv:B$Oe(B model 2 e$BA0Ds$K$7$F$\*$1$P$$$$$s$G$9$,!$e(B  
e$B\>-Mh$Ne(B model 3 e$B$N\<BAu;~$K$O8=:_8!F$$7$F$$$k$3$H$re(B  
e$B$-$C$HK:$l$F$7$^$C$F$$$k$G$7$g$&$+$ie(B (^_^;e$B!$e(B  
e$BBP1~$G$-$=$&$J$i$$$C$=$N$3$H0l5$$K$H$$$&$o$1$G$9!%e(B

> e$B!!e(Btcl/tk e$B$rNI$/CN$i$J$$$G8@$&$s$G$9$,!$40A4$KBP1~$5$;$k$N$O$I$A$i$bIT9,e(B  
> e$B$J5$$,$7$^$9!%e(B

e$B9M$($F$\_$F$O$$$k$s$G$9$,$&$^$$\<j$,;W$$$D$+$J$/$F!%!%!%e(B  
e$B2?$i$+$N@)8B$OIU$1$6$k$r$($J$$$+$b$7$l$^$;$s!%e(B

> > YARV e$B$G$Oe(B rb\_thread\_schedule() e$B$N8F$S=P$7$@$1$G==J,$G!$e(B  
> > e$B3d$j9~$\_=hM}$NJ}$O5$$K$7$J$/$F$bNI$$$N$G$7$g$&$+!)e(B
> 
> e$B!!3d$j9~$\_=hM}$r5/$3$9$h$&$K$7$F$"$C$?$h$&$J!%e(B

e$B$3$l$/$i$$$O\<+J,$G%A%'%C%/$9$l$PNI$$$3$H$G$9$h$M!%$4$a$s$J$5$$!%e(B

> > e$B=\>Mh$[$I$K$O5$$K$9$kI,MW$O$J$$$1$l$I$b!$e(BThread model 2 e$B$N\>l9g$O!$e(B  
> > e$BG0$N$?$a$KD4@0%Q%i%a!\<%?$OMQ0U$7$F$\*$$$?J}$,NI$$$H$$$&$3$H$N$h$&$G$9$M!%e(B
> 
> e$B!!$J$s$N%Q%i%a!\<%?$G$9$+!)e(B

e$B@bL@ITB-$G$7$?!%e(B  
e$B\>e5-$N$h$&$J%$%Y%s%H%k!\<%W$+$i$N@Z$jBX$(%?%$%_%s%0@)8f$N$?$a$Ne(B  
e$BD4@0%Q%i%a!\<%?$NOC$G$7$?!%e(B  
e$B$G$9$N$G!$e(BYARV e$BB&$G$I$&$N$H$$$&OC$G$O$"$j$^$;$s!%e(B  
e$B$^$.$i$o$7$/$F$9$_$^$;$s!%e(B

> [ruby-dev:30253] Re: YARV e$B$Ne(B thread e$B$K$D$$$Fe(B
> 
> > > e$B!!$“$s$^$jBP:v$O9M$($F$$$J$$$s$G$9$,!”$=$&$$$&e(B API e$B$rMQ0U$9$k$3$H$O2DG=e(B
> > > 
> > > > e$B$G$9!#$=$N:]$O!"$A$g$C$HLLE]$J@)Ls$,F~$k$+$b$7$l$^$;$s!#e(B
> > 
> > e$B5U$Ke(B Ruby e$B$r8F$V$3$H$,e(B _e$B$G$-$J$$e(B_ e$B$h$&$Je(B native thread e$B$G$“$k$+$re(B  
> > e$B%A%'%C%/$9$k$?$a$N8x\<0$JJ}K!$O$”$j$^$;$s$+!)e(B  
> > e$BI,MW$b$J$$$N$Ke(B native thread e$B$r$^$?$0$N$OL5BL$G$9$N$G!$e(B  
> > e$BDc%3%9%H$G%A%'%C%/2DG=$J$i!$$=$l$rMxMQ$9$kJ}$,K\>$^$7$$$H;W$$$^$7$F!%e(B
> 
> e$B!!$&!\<$s!%C\<E\*$K8@$&$HL5M}$8$c$J$$$+$H;W$$$^$9!%e(B

e$BL5M}$G$9$+!%e(B  
native thread ID e$B$He(B Thread e$B%\*%V%8%'%/%H$H$N4V$G$Ne(B  
e$BBP1~I=$N$h$&$J$b$N$G$b$"$l$P$G$-$k$+$J$H;W$C$?$N$G$9$,!$e(B  
e$B;EJ}$J$$$G$9$M!%e(B  
e$B$=$NA0Ds$G9M$($k$3$H$K$7$^$9!%e(B

e$B$"$j$,$H$&$4$6$$$^$7$?!%e(B

---

<div class="post-metadata">

**Author:** ![Hidetoshi\_NAGAI](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/h/49beb7/32.png) [@Hidetoshi\_NAGAI](https://www.ruby-forum.com/u/Hidetoshi_NAGAI)\
**Post date:** [February 5, 2007, 3:22am UTC](https://www.ruby-forum.com/t/yarv-b-n-b-thread-b-k-d-f-b/83664/7 "2007-02-05T03:22:41Z")

</div>

e$B!!$5$5$@$G$9!#e(B

Hidetoshi NAGAI wrote:

> e$B5$$K$7$F$$$k$N$O%$%Y%s%H%k!\<%W$+$i$N@Z$jBX$(%?%$%\_%s%0$N@)8f$G$9!%e(B
> 
> model 2 e$B$G$OL@\<(E\*$K@Z$jBX$($F$d$i$J$$$H$$$1$J$$$G$9$,!$e(B  
> e$B;G$C$?OC$K4p$E$/$H!$$"$^$j$KIQHK$K@Z$jBX$($k$H%l%9%]%s%9$,e(B  
> e$B0-$/$J$j$=$&$G$9$N$G!$\>/$79)IW$,5a$a$i$l$=$&$G$9!%e(B

e$B!!$H$j$"$($:!":n$C$F$+$i$I$l$/$i$$BQ$($i$l$J$$%\*!\<%P%X%C%I$+3NG’$7$F$\_e(B  
e$B$k!"$H$$$&$N$O$I$&$G$7$g$&$+!#e(B

> native thread ID e$B$He(B Thread e$B%\*%V%8%’%/%H$H$N4V$G$Ne(B  
> e$BBP1~I=$N$h$&$J$b$N$G$b$"$l$P$G$-$k$+$J$H;W$C$?$N$G$9$,!$e(B  
> e$B;EJ}$J$$$G$9$M!%e(B  
> e$B$=$NA0Ds$G9M$($k$3$H$K$7$^$9!%e(B

e$B!!BP1~I=$Oe(B YARV e$B$O:n$k$s$G$9$,!“e(BYARV  
e$B30$N%M%$%F%#%V%9%l%C%I$+$i$=$$$D$Ke(B  
e$B0BA4$K%”%/%;%9$G$-$k$H$$$&J]\>Z$,$J$$$s$G$9$M!#$&!\<$s!"$=$3$r%"%/%;%9$G$-e(B  
e$B$k$h$&$K$9$l$P$$$$$N$+!#$&!\<$s!"%b%G%k#2$G$b!"$=$N$?$a$K$$$A$$$A%m%C%/$+e(B  
e$B$1$J$$$H$$$1$J$/$J$C$F$7$^$&$J$!!#e(B
