--Multipart_Fri_Feb_27_23:21:10_1998-1
Content-Type: text/plain; charset=ISO-2022-JP
Á°ÅĤǤ¹¡£
Mutex/ConditionVariable¤ò µ¤·¤¨Âíïîéôïò®òâ¤ò ¤¤Æ¤ß¤Þ¤·¤¿¡¨Â
Íïîéôï¤Â¤È¤¤¤¦¥¯¥é¥¹¤ÈMonitorMixin¤È¤¤¤¦¥â¥¸¥å¡¼¥ë¤¬Æþ¤Ã¤Æ¤¤¤Þ¤¹¡£
Monitor¤ÏMutex¤È¤À¤¤¤¿¤¤Æ±¤¸¤Ç¤¹¡£
foo oo.new
mon onitor.new
cond on.new_cond
thread1:
mon.synchronize {
...
cond.wait_until { foo.done? }
...
}
thread2:
mon.synchronize {
foo.do_something
cond.signal
}
¤³¤ì¤òMonitorMixin¤ò»È¤Ã¤Æ ¯¤È¤³¤¦¤Ê¤ê¤Þ¤¹¡¨Â
æï ïï®îå÷
æïï®åøôåîä¨ÍïîéôïòÍéøéî©
ãïîä ïï®îå÷ßãïî
ôèòåá䱺
æïï®óùîãèòïîéú ®® ãïîä®÷áéôßõîôéæïï®äïîå ®®
ôèòåá䲺
æïï®óùîãèòïîéú æïï®äïßóïíåôèéîç
ãïîä®óéçîá
éîãìõä¤Â¤¹¤ë¾ì¹ç¤Ïinitialize¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤¹¤ë»þ¤Ëɬ¤ºsuper¤ò
¸Æ¤Ö¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
# Queue¤Ç»î¤·¤¿¤È¤¤Ë¤³¤ì¤ò˺¤ì¤Æ¤¤¤Æ¥Ï¥Þ¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£
ÁȤ߹þ¤ß¥¯¥é¥¹¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤Î¾ì¹ç¤Ïnew¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Æ
mon_initialize¤ò¸Æ¤ÖɬÍפ¬¤¢¤ê¤Þ¤¹¡£
--
Á°ÅÄ ¨Â
Íõìôéðáòô߯òé߯åâß²·ß²³º²±º±°ß±¹¹¸±
ÃïîôåîôÔùðåáððìéãáôéïî¯ïãôåôóôòåáíôùðå½çúéÃïîôåîôÄéóðïóéôéïîº áôôáãèíåîôæéìåîáíå½¢íïîéôïò®òâ®çú¢
ÃïîôåîôÔòáîóæåòÅîãïäéîçº âáóå¶´
È´óÉÃÌòȹêÑÁÁ²±öâíì°â³ÉõãíÉÁøÖèôâ¹ó²Åдã¯÷ò϶Òð·Ó±ÓîÇ·ÄÖ×ÊÚëíÖÍÅ×ÊùôãäÙÐ
ÒáÈÓÆí²úìÕׯïðÊ´áæ··êé«éñÆã³ÒäãÂÒÓòúêöæù³Î±ÄÓôôïøÓÉñÇÐæ´ÆÏ³ôïåëáØÓ·ÔÂÕÐî
íÁÑÙ¯ÚÌÉÈ°ãø¸úÄÆÅÒÆåÒÌú³¸á«ä·ã´²õòï¸æêëáñëåŵïùèÁ³ÔËÇÇêãÚéóåõÒÍëÃîòî²óÕµ
öáÎÒØ÷ìîÌÁðÁæ¶·±ææîÔÇÂÊÌÔîÃ÷зѲëîհ׳Ë÷¸Á¹Â¹²ïÖÉã¯úúÊÐã¶ä±éËö÷°ÅêÒŹ²ðÐ
÷ÃÊùéÂµË²ç¸ÆÆ¸¯âØ×çúæóÊ×ÒÃøðôÈÄ¹ÊØÑÒ´äÃøåÔùÚêÍáÔó´ôøÂóæÚÈ˱Úéíç°Ã¹ÏÁÉÂãÁ
èÃÆ±äëÍ´ðùµҰÆÃãÑéõä³âÖîíÔʰêÄÑËÏÅ÷ÒÏ«ÓÎÃÚ¸ø¹ôïÖúÁ°Ô×ëï¹õµÆõÉëÉÙìò°æðÕ
èô´Â·Äôùé¯ÙÂÔåÁ·ëØéäÄ鿨ËåÕÅäåãÕãõ±²Ïéó×ðÇÈÒÚÑãè«ÐæñµÎɯ«ø²ñ«å³±ë·Îç¶ÄÔÕ
·ç°áåÁϰ¯«ÌÆú¸¸Çúµ¸¹¯÷îô¯úçã·Á¹¯åÉÆÕØ¶ÈÒØ×ùåîíèâøóíæîË´çíÂöÓëÚéòгÕðË´ÇÒ
ͯÙöØ´¹Åòæ³Ì¸²ø¸êÃÏæ«÷ÑðÏÌñ·ÇëúïÂÖdz°¶íú¸°ö¯òáîѱñôδæØ÷²áÖÂÑÏçÇÚï´ÓÅ
ã¹ÐòÐðõ«ÊúÐÒ篯¶ÊêøÖгãÂÈò°é´ÅïÁõ¯Î°ðäëáîÕñåâ²ê÷ÆõËÊáÏêÉîØÓÎæÏÂɶ³É²áí¯å
Ïîï±íÚæÖÌìÓùìúÇåÅѸéðèÈøÖâôÁõÌ÷îÕåíêçËÇÐÎÐêÙ²ÓïÆÄöïèÅáÒÈç·¶×ÏÕÆØÚÈÕèÖµÒñ
´îÖ±äÍÑÚùÌÖçó¹õÉãËÐÉéÕèµÖÁ䳯æ¶ÅÃίá¶Î³çó̯ÒÅÃÁÊåçÖúÍáã³×ÂÁ°ÌÊéòÒêðêÑÈäÖ
¶ØÃô°åñâÄÒÅ×õ²çêÚÈíÉÒÕéÊÚÅçÈÐêÔö°µÊÓññåíòñøõÕñÓ·ÖóÍÎòÓôÙ°¯¯úäìíúËÌÐÉÂ÷ó
ÂÐæìÑÕÉ´ÇôðÓ·åðîÂãáõÕÒ¹×ãÔÂñµÖԫŰÚðµµÍêdzñÂÒïµóÆçµ·ÈÆÕÔãäîçñÊÊÓÌö³°åÓëÅ
¹Äîú°äêæèÚ÷«õÚ¸ôéË×¶´ÇìÉæÎ±ÂåÓîïÈʳÓõùèäïÙÏÄÁ±ë×øÄéá¸ÊÓãùÁÐÚØÔúÆÙÖÊÚ·×ùÎ
áÖèÙúÐïâ°´ÓçùÔïíɸ´ÚäÆí³ãÐÔÐãÌÑêëÉ´Ìâä¯ÌäèÃ竹ÄÖËÙÉîÙ²äËÆôįױËÂÒïîÁ°Ùú´
ÂËÄïäØÐÙõ¸ÃîÚð´ñëùÅîÌÚíìÔéè×ô¶øÙÚÎïíÆÃöäÌÕÍú±¸Ú¶îÐõ±±öÓ°õòïæÊÉúáðóµáèø×ë
ñ¹Õá¶ñ¯Å¶òÊáÙÊÃñÔ·Ö²úÇµÈ¯ÎÆõïÉø°Ðîò·Ö´âÔǵïãú¸ÃÕÆ°ã×ÊÃÙ°ãôêòçêãȳÁðç
óë÷ôùÇåÁíéêÇåÅØãÃÇñôÎïÇд±éÃÐùãÙÎðÈÅÂãöÙÕÒùÔð²×·èã°Ð´Ô´öëäÈñçÂËç²Ññ¯ôñÄØ
ÔâäìµÁñ̳ÕðÂã´·ñæÙæµ÷ìèÒÁÒíØÊÒ´ò·ÂÚ¸·ÖõåùçÂÌÑúîúãµøÎ÷ëÓ¹ÁîçúÄìâçÂç÷ù÷ã±è
Ñð²·çÁåÅåÊéÒâïÇ÷ÍçÍðµ«ÃïØ¶ÁÓ±÷ÌÍÍÓòñìóøðìóñÚ¶Øõ°îµ¯ÈÊí´â׫áèÇî¶åíñíæ³íúÁ
¶ÚÔÏ´°°Ù³ÃµðÓÊ÷ëöìÆÈÁ³ò¶ôÌè×í±ê±êÐÄéÎÆî×ÉíáÄÓÁÓÌéùô±Ùרðâù·ÆÒîÓâÅÓ÷°ë°òí
êïðñØÚöÓΰùôÒÂìØÇ÷³ú´ïëéÊðÂí²ç±ÆôÙë³ðâÏØðÕÏäá¶ÆóõÕÆô°°ÉÎ͹øðúÖ³ËɶôÙòÁ¸·
×·ÌîáóñÙÌÏë¸Ó±ÏÔÖáÚÙÎÆÐÑ˹²³²úðØåÄùÎÚÇѱâåõ¸ïìãïöäê×Ã˰ðÃÔÏöÃäÃâñµâÖ°éÖÇ
ïÂÇãÉÐãêÑÎ×êÃãÕ³ÚÑÄõÖµ·ÉâëèÙÖÎÌæâÆµËõÌ·æ´¹ÔḷÆÍâ˳ñêÊ÷¹ÚÂí±×ëÊ×êë³âÚå¯
ãèÑÄÈÐÒò¸òÌγ¹â¶ÇòÏίå¯ãñÄáÎÑÁáù¸Ç·øÂµÌÇר¹âïìÙÊæÔ¶ÙÅêËÑñѸ«¶ÁÓ×ÙÄÏ̯óáã
ùôÐÙØïñäÍ¹Ö¸î³ÆöøæË³úëÍ«ÚÑËÚÅõÆÊùùÖåáõÓÅëìîù²ð𶶯ÅÅíÔöÏù²¹¹ìá¶øÊ×é¶ðãÇï
¶¶ç¸°¸äαñåÅ´ÈÂÅô¹«Íïá¸É÷ôêÖÚËÆÊâÍôÂõÐÈÔÒæ·µ°²êñÔ¶ÇÐóÇÁ«áÈ·ÖÓòÚ×ÒŶÖòÙð·
îìÔÈñбÍóäÉÙµñÍ««ÓìîÏÊêèµÃô³ãíö«ãµèÈÁÕÎòÑÙÃú±íÒåÍ×ÒøíïÕŸù«ÄÃâúÂÚïøí̶ÏË
òáùúëÅÑÌóáùãðÙâÕ·Õä¹Ú²õÆîÏÔâ쯵ËáÌáòͱ¸ú²âíìïïâöÍÐòÑìðä¹Î×ÓÖá·«×á±îÎÏîÃÄ
åùÈÑñ·òÓ«×ãÆÇ㫯¹åó¹ÚÃÅÚÁÁÁÍõìôéðáòô߯òé߯åâß²·ß²³º²±º±°ß±¹¹¸±
ÃïîôåîôÔùðåáððìéãáôéïî¯ïãôåôóôòåáíôùðå½çúéÃïîôåîôÄéóðïóéôéïîº áôôáãèíåîôæéìåîáíå½¢ñõåõå®òâ®çú¢
ÃïîôåîôÔòáîóæåòÅîãïäéîçº âáóå¶´
È´óÉÃÍîȹêÑÁÁ³Æ±ÚØÖìÌîÊéÁËÖÔù°·ÄÍÂÁ¸Î±«øËðã×ÕÍÕÚÎáÕØêê°çõÃÆÕõãëíÍâè²¶ïæ¶
ÑÐ÷·Ç·ôδµËåéËÌɸã·Ïúñ·ÈÎ·Âø¶ÈÃéÖ°íéãåÏ´ÒèéõìåÒ×¶×ÇÓÚÉÉÚÁù¸ÎÊÁÇçì¸ôÍõÂøè
ÅÓÁÌöõÍùÒÈÉóËÍïôÚ´ÉæÇêÓÁãÔÖñöµðÔÆÕêè¯Óи´âñ²«²×íÚŶâÅòä«ÓÓÇë·µÇñäñÙáñäØî
ÏÄÄôÚÖÚðñîìÁ«ÐÙ·çØÍÓ÷ùÌñéåÇìÚÍÉÈæé·ÉÖÔ²ÓáéÖÕ¹ëÕÃÃéÙÍØñ¯ÄÃúèèÇÑî²ÚÑØË°ìáÑ
ðöÃÑÄÄÔêÂõÇô°óêùÚ¶²Ööïåèîùð´ÍãÍêįï×̰ÖõÇâæÌâãÕÆÆÑúãÐöêëÊÔåÐÒõõ°ÄÃÆÔ¸ã̲
ÎÒÒù²ìÆÈ«éÊçÃÆ÷ÃëµÍ¶Ïêôí÷ÄÔôôµÆêðîÔòÚÓÏ×ùúÌð¶õò°ÅëÍáÒ층íÏéÖÓÈÐöÊÊè²Èã×ó
±æÃ´Úòó«Ç´±ïæ³ú²°ééóµ·Ò̵øÚù¶Ìä÷ÑöúâÔÓ±ÊúµÅãøúìÌÑ«îÔ°ÑÒÎÌײÐù×¶ÚÌó³±ïðÒË
ëó¯ØÊÊÉÒ·ÎöÙò¶ôè¶éØÅ³éÃáÓÅÁ·ÓÅËíîÒȲí·öðáÂÚÙµ³ÊÄêðÓÖìñøÐÇÐÇîñøÍÆùÙÃø÷·¯
ï«ÏËä³úêãÎäôõô¹Ãö«Õ··óÇíÂÁÁÁ
Íõìôéðáòô߯òé߯åâß²·ß²³º²±º±°ß±¹¹¸±