e$BA0ED$G$9!#e(B
e$B$A$g$C$HCY$-$K<:$7$?46$b$"$j$^$9$,!“e(Bfastthreade$B$N%3!<%I%l%S%e!<$re(B
e$B$7$^$7$?$N$G!”$$$/$D$+5$IU$$$?E@$r!#e(B
(1) rb_thread_wakeup()e$B$Ne(Brb_rescue2()
rb_thread_wakeup()e$B$re(Brb_rescue2()e$B$G<B9T$7$Fe(BThreadErrore$B$rL5;k$9$ke(B
e$B$h$&$K$7$F$$$^$9$,!“e(BTHREAD_KILLEDe$B$J%9%l%C%I$O%9%-%C%W$7$F<!$Ne(B
e$B%9%l%C%I$re(Bwakeupe$B$7$J$$$H!”$@$l$be(BMutexe$B$r3MF@$G$-$J$/$J$C$F$^$:$$e(B
e$B$h$&$J5$$,$7$^$9!#e(B
(2) Marshale$B$NBP1~e(B
Marshale$B$Ge(Blocke$B$G%V%m%C%/$7$F$$$k;~$K$be(Bdump/loade$B$G$-$k$h$&$K$J$C$Fe(B
e$B$$$^$9$,!":#$Ne(BMutexe$B$G$Oe(Blocke$BCf$Oe(Bdump/loade$B$G$-$J$$$N$GHs8_49$G$9$M!#e(B
Javae$B$Ne(BObjecte$B$be(Bdump/loade$B$G$-$ke(B(Javae$B$@$H%b%K%?5!9=$Oe(BObjecte$B$KHw$o$C$Fe(B
e$B$$$^$9e(B)e$B$N$GLdBj$J$$$H$O;W$&$N$G$9$,!"$3$NE@$K$D$$$F$O==J,8!F$$5$l$Fe(B
e$B$$$^$9$G$7$g$&$+!#e(B
(3) malloc/free
malloc/freee$B$r;H$C$F$^$9$,!"e(Bxmalloc/xfreee$B$K$7$?J}$,$h$$$N$G$Oe(B
e$B$J$$$G$7$g$&$+!#e(B
(4) rb_thread_critical
e$B$$$/$D$+e(Brb_thread_criticale$B$NA`:n$r$7$F$$$^$9$,!“e(BCe$B%l%Y%k$G$Oe(B
e$B$”$k<o$Ne(BRuby APIe$B$r8F$P$J$$$+$.$j$O%9%1%8%e!<%j%s%0%$%Y%s%H$Oe(B
e$BH/@8$7$J$$$N$GITMW$G$O$J$$$G$7$g$&$+!#e(B
(5) Queue
Queuee$B$Oe(BRubye$B%l%Y%k$Ge(BMutex/ConditionVariablee$B$r;H$C$F<BAu$7$?J}$,e(B
e$B$$$$$h$&$K;W$$$^$9!#e(B
e$B$H$$$&$+!“e(BQueuee$B$H$$$&L>A0$b$A$g$C$H$”$l$J$N$G!"e(B1.9e$B$G$Oe(B
Thread::Queuee$B$H$+$K$7$?J}$,$$$$5$$b!#e(B
e$B$=$&$9$k$H!"e(BListe$B$Ne(Bsizee$B$J$I$Oe(BMutex/ConditionVariablee$B$N<B8=$K$Oe(B
e$BITMW$J$N$G:o$k$3$H$b$G$-$^$9$M!#e(B
(6) e$B<B@Se(B
Mongrele$B$G;H$C$F$$$k$N$G<B@S$,$"$k$H$$$&$3$H$G$9$,!“e(BConditionVariable
e$B$O;H$o$l$F$$$J$$$h$&$K;W$$$^$9!#e(B
e$B$I$A$i$+$H$$$&$He(BConditionVariablee$B$NJ}$,LdBj$,5/$-$d$9$$$+$b$7$l$^$;$s!#e(B
e$B$”$H!"%9%l%C%I$,$i$_$@$H$"$k%"%W%j%1!<%7%g%s$GLdBj$J$$$+$i$H$$$C$F!“e(B
e$BB>$N%”%W%j%1!<%7%g%s$GLdBj$J$$$H$O$$$($J$$$N$G!“J#?t$N%”%W%j%1!<%7%g%se(B
e$B$G8!>Z$7$?J}$,K>$^$7$$$G$9$M!#e(B
(7) e$B%a%s%F%Je(B
fastthreade$B$N%a%s%F%J$OC/$K$J$k$N$G$7$g$&$+e(B?
e$B:G8e$NJ}$O%3!<%I$H4X78$J$/$J$C$F$^$9$Me(B;p
e$BB>$K$b2?$+$"$C$?$h$&$J5$$,$7$^$9$,!“K:$l$^$7$?!#e(B
e$BA4BNE*$KCWL?E*$JLdBj$,$”$k$o$1$G$O$J$$e(B(lib/thread.rbe$B$HF1$8DxEYe(B
e$B$K$O>e<j$/F0$-$=$&e(B)e$B$H;W$&$N$G$9$,!"$A$g$C$HIT0B$G$9!#e(B
e$B$H$$$C$F:#$N%?%$%_%s%0$G%3!<%I$r$$$8$k$N$b62$$$N$G$9$,!"$I$&$9$ke(B
e$B$Y$-$G$7$g$&$+!#e(B
1.8.5e$B$b%a%s%F%J%s%9$5$l$k$3$H$G$9$7!"$3$N$^$^$($$$d$C$HF~$l$Fe(B
e$B$7$^$C$F$b$$$$$G$9$+$M!#e(B
e$B$=$&$$$($P!"e(Bruby_1_8_5e$B$Ne(Bsignal.ce$B$NOC$Oe(Bmpute$B$5$s$KEA$o$C$F$k$se(B