æè¡ãã§ãæ¥èšãšOWã®ã¢ããŠã³ã¹âãèŠãŠæ°ä»ããã®ã§ããã
http://groups.yahoo.co.jp/group/overlayweaver/message/106
Overlay Weaver ã®ãšãã¥ã¬ãŒã·ã§ã³ã§ããŒãåäœã«ã¹ã¬ãããæ¶è²»ããããš
ããªããªã£ããã§ããã
ããã¯ãã¥ãŒã¹ãããªãã§ããã
æè¡çã«ã¯ãã€ãã³ãé§åã¢ãŒããã¯ãã£ã«ãªã£ãã®ãããšãæ°ã«ãªã£ãŠãã
ãŸãããã
---
åç°ãå¹¹ ãy...@bbr.jp
> Message-Id: <20071204163635.8308B6A1000E1614@px-2>
> From: Miko Yoshida <mik...@mx5.canvas.ne.jp>
> Date: Tue, 04 Dec 2007 16:37:02 +0900
> æè¡ãã§ãæ¥èšãšOWã®ã¢ããŠã³ã¹âãèŠãŠæ°ä»ããã®ã§ããã
> http://groups.yahoo.co.jp/group/overlayweaver/message/106
>
> Overlay Weaver ã®ãšãã¥ã¬ãŒã·ã§ã³ã§ããŒãåäœã«ã¹ã¬ãããæ¶è²»ããããš
> ããªããªã£ããã§ããã
> ããã¯ãã¥ãŒã¹ãããªãã§ããã
ãããªãã§ããã
èªåãšããŠã¯å€§ãã¥ãŒã¹ :) ã§ãã
PC 1å° (Linux / x86) ã§åäœãããããããŒãæ°ããããã¶ãå¢ããŸããã
OW 0.7 ããå: 4,000 ããŒã
OW 0.7 以é: 8,000 ããŒã
OW 0.7.7 以é: ãã以äž
> æè¡çã«ã¯ãã€ãã³ãé§åã¢ãŒããã¯ãã£ã«ãªã£ãã®ãããšãæ°ã«ãªã£ãŠãã
> ãŸãããã
å€æŽããŠãããã¡ã«ãã€ãã³ãé§åã£ãœããªã£ãŠããŸããã
åœåãOverlay Weaver ã§ã¯ã
ããŒãæ°ã«æ¯äŸããã¹ã¬ãããåããŠããŸã (*1) ããšã®èšãèš³ãšããŠã
ã«ãŒãã£ã³ã°ã¢ã«ãŽãªãºã (Chord ãšã) ã®ããã°ã©ãã³ã°ã
èªç¶ã«ã§ãã (*2) ããã«ããããã«ã¯æ¢ããåŸãªãã
ãšäž»åŒµããŠãããŸããã
(*1) ãšããããšã¯ã1å°ã§åäœå¯èœãªããŒãæ°ãã
OS ãããã»ã¹ããµããŒãããã¹ã¬ããæ°ã«å¶éãããã
(*2) å« ã¹ã¬ãããäœãããšãèªç±ã
ãã®ãããããã·ãã¥ã¬ãŒããšãšãã¥ã¬ãŒãã®éãã§ããã
ãšãã説æãããŠãããŸãã:
Means for Peer-to-Peer Research (ã¹ã©ã€ã)
http://www.shudo.net/publications/DAS-P2P-2007/
ã»ããŒã矀ã®ãã·ãã¥ã¬ãŒãã
p2psim ãšã OverSim ãšãã
ã»ç°å¢ (ãããã¯ãŒã¯ãšã) ã®ããšãã¥ã¬ãŒãã
Overlay Weaver ã¯ãã¡ãã
å®ç°å¢ãšåã (ããŒãã®) ããã°ã©ã ãåããããã
ã©ãããŠã OS ã®ãªãœãŒã¹ (ããã»ã¹ãã¹ã¬ããç) ãé£ãããã
ãã¹ãã§ããããŒãæ°ã¯å¶éãããã
ãšããããOverlay Weaver ã§ãã¹ã¬ããæ°ãåæžããŠãã£ãçµæã
ããŒããå æããã¹ã¬ããã 0 ã«ã§ããŠããŸããŸããã
ã§ã¯ãã€ãã³ãé§åã? ãšãããšããŸã éãæ°ãããŠãŸãã
äŸç¶ãã¿ã€ãããã£ãŠãæå®ããæå»ã«ã€ãã³ã (put ãšã get ãšã) ãèµ·ãã
ãšããæ¹åŒãæ¡ã£ãŠãŸãã
ã¹ã¬ããã¯ãå¿
èŠã«å¿ããŠäœãããŸãã
ã¿ã€ãããããçç±ããèªäœããã®ã§ã
ã€ãã³ãçºçã®ã¿ã€ãã³ã°ã調æŽããã°ã
2åéãšãã¥ã¬ãŒã·ã§ã³ã3åéãšãã¥ã¬ãŒã·ã§ã³ãšããããšã
ã§ãããã§ã¯ãããŸãã
ãã ãã€ãã³ãã®é£éãåŠçãçµãããã次ã®ã€ãã³ããåŠç...
ãšããé次çã«åŠçããŠããããšãå¯èœãªããã«ã¯ã§ããŠãŸããã
ãªã®ã§ãã€ãã³ãé§åã§ã¯ãªãã®ã ããããšæã£ãŠãŸãã
ã§ãããããã¹ã¬ããæ°ã 1 ã«å¶éããŠããŸãã°ã
ã€ãã³ãé§åãšåãã«ãªãã®ãããããŸããã
ã¹ã¬ããæ°ãæžãããŠããéçšã§ãã«ãŒãã£ã³ã°ã¢ã«ãŽãªãºã ã®æ¢åå®è£
(Chord, Koorde, Kademlia, Pastry, Tapestry) ã«ã¯ã
è¥å¹²ãèªç¶ã§ã¯ãªãèšè¿°æ³ãå
¥ããŠããŸã£ãŠãŸãã
æåã¯ãäŸãã° Chord ã® stabilization ã®ãããªããŒã¢ã³çãªåŠçã¯ã
ã¹ã¬ãããäœã£ãŠãã«ãŒããåããŠãã«ãŒãã®äžã§ã¯æ¯å sleep ããŠã
ãšãã (èªç¶ãª) æžãæ¹ãããŠãŸããã
ä»ã¯ã1åã®åŠçãçµãã£ããã
次åã®åŠçãã¹ã±ãžã¥ãŒã«ãã (èµ·åãã¿ã€ãã«äŸé Œãã)
ãšããæžãæ¹ã«ãªã£ãŠãŸãã
ãšã¯ãããèªç¶ãªæžãæ¹ã§ã (ã¹ã¬ãããé£ããŸãã) åããŸãã
ãŸããäž¡ã¹ã¿ã€ã«ã¯ãã©ã° 1ã€ã§åæ¿ãããããããã
ã³ãŒãã«ã¯ã»ãšãã©éãããªãã§ãã
ã¹ã¬ããã䜿ã£ãèªç¶ (?) ãªããã°ã©ãã³ã°ã¹ã¿ã€ã«ãš
ã€ãã³ãé§åã®ã¹ã¿ã€ã«ã¯ãæ¡å€è¿ãã£ãã®ã ãªãããšæããŠãŸãã
ãã®ããããäœãæŽçã§ãããšãããªããšå€¢æ³ããŠãŸãã
éŠè€äžå¹ž
ã³ã¿ããŒã
åã«éŠè€ãããšã話ãããšããã
ã·ãã¥ã¬ãŒã·ã§ã³ãšãšãã¥ã¬ãŒã·ã§ã³ã®å®çŸ©ã話é¡ã«ãªããŸãããã
ç§ã¯æ確ãªå®çŸ©ã¯ãªããšã¯æã£ãŠãŸããã
åéãã§ãããªãã·ãã¥ã¬ãŒã·ã§ã³ã®æ¹ããã£ããããŸããã
--daishi
> Message-ID: <a2334423-6d86-4dc4...@b40g2000prf.googlegroups.com>
> From: KOBARA Makoto <kobara...@gmail.com>
> Date: Tue, 4 Dec 2007 07:59:21 -0800 (PST)
> > ãšããããOverlay Weaver ã§ãã¹ã¬ããæ°ãåæžããŠãã£ãçµæã
> > ããŒããå æããã¹ã¬ããã 0 ã«ã§ããŠããŸããŸããã
> >
> > ã§ã¯ãã€ãã³ãé§åã? ãšãããšããŸã éãæ°ãããŠãŸãã
> > äŸç¶ãã¿ã€ãããã£ãŠãæå®ããæå»ã«ã€ãã³ã (put ãšã get ãšã) ãèµ·ãã
> > ãšããæ¹åŒãæ¡ã£ãŠãŸãã
> > ã¹ã¬ããã¯ãå¿
èŠã«å¿ããŠäœãããŸãã
>
> ããã¯(ãå¿
èŠã«å¿ããŠäœãããããšããã®ã¯)ã
ã¿ã€ããšãã圢ã«æœè±¡åããŠãããŸãã
æå㯠java.util.Timer ã¯ã©ã¹ã䜿ã£ãŠããã®ã§ããã
ããçç±ãããèªåã§åç (+ α) ã®ã¯ã©ã¹ãäœããŸããã
äžèº«ã¯ã©ããªã£ãŠããããšãããšã
java.util.Timer ããOverlay Weaver ã® ow.util.Timer ãã
ãããªã£ãŠãŸã:
ã»ã¹ã¬ããã 1ã€ãã€ãã³ãåŸ
ã¡ãããŠããã
ã»æå»ãæ¥ããããã®ã¹ã¬ããèªèº«ãã€ãã³ããå®è¡ããã
ãã ããOverlay Weaver ã® ow.util.Timer ã¯ãèšå®ã«ãã£ãŠã¯ã
ã€ãã³ãã«å¯ŸããŠããã®ã€ãã³ãå°çšã®ã¹ã¬ãããå²ãåœãŠãããšãã§ããŸãã
(ã¹ã¬ããããŒã«ã䜿ããŸãã)
ãªã®ã§
> æå®ããæå»ã§çºè¡ããã€ãã³ã
> ãåŠçãããšãã«ããã®ã€ãã³ãã®çºè¡å¯Ÿè±¡ãšãªãããŒãããšã«åŠççšã¹ã¬ããã
> èµ·åãã(ã€ãŸãåžžæèµ·åã¯ããŠããªããã©ã€ãã³ãåŠçæã«äœãããŠãåŠç
> ãå®äºãããã¹ã¬ãããçµäºããã)ããšããæå³ã§ããããã
>
> ãããšãã
> ã€ãã³ãåŠççšã®ã¹ã¬ããã1æ¬ã€ãã³ãåŸ
ã¡ããŠããŠ(ãããã¯ã¹ã¬ããããŒã«
> ãåŸ
æ©ããŠããŠ)ããã¥ãŒããã€ãã³ããåãåºããŠåŠçããããšããããšã§ããããã
åºæ¬çã«åŸè
ã§ãã
Overlay Weaver ã®å Žåã¯ãèšå®ãå€ãããšåè
ã®æåãããŸãã
éŠè€äžå¹ž
ãŸã ãã€ãããOverlay Weaver ã®åæ£ç°å¢ãšãã¥ã¬ãŒã¿ã
ãšããããã¿ã€ãã«ããã€ãã³ã (*) ã®åŠçãæ¹è¯ãç¶ããŠãŸãã
ããã»ã©ããšããšãã€ãã³ãé§åãšãã¥ã¬ãŒã·ã§ã³ãŸã§å¯èœã«ãªã£ãã®ã§ã
ã¡ã¢ã®æå³ãå
ŒããŠãçµç·¯ãæžããŸãã
(*) ãšãã¥ã¬ãŒã¿ã«ãããŠã¯ãã·ããªãªäžã«æžãããæ瀺ã
ãããªãã€ïŒ
...
schedule 0 invoke
schedule 5000,5,999 invoke
...
schedule 14 control 1171 put k14 v14
schedule 15 control 7370 put k15 v15
schedule 16 control 6710 put k16 v16
...
> Message-Id: <20071206.003252...@utagoe.com>
> From: Kazuyuki Shudo <20...@shudo.net>
> Date: Thu, 06 Dec 2007 00:32:52 +0900 (JST)
> å°åãããéŠè€ã§ãã
>
>> Message-ID: <a2334423-6d86-4dc4...@b40g2000prf.googlegroups.com>
>> From: KOBARA Makoto <kobara...@gmail.com>
>> Date: Tue, 4 Dec 2007 07:59:21 -0800 (PST)
>
>> > ãšããããOverlay Weaver ã§ãã¹ã¬ããæ°ãåæžããŠãã£ãçµæã
>> > ããŒããå æããã¹ã¬ããã 0 ã«ã§ããŠããŸããŸããã
>> >
>> > ã§ã¯ãã€ãã³ãé§åã? ãšãããšããŸã éãæ°ãããŠãŸãã
>> > äŸç¶ãã¿ã€ãããã£ãŠãæå®ããæå»ã«ã€ãã³ã (put ãšã get ãšã) ãèµ·ãã
>> > ãšããæ¹åŒãæ¡ã£ãŠãŸãã
>> > ã¹ã¬ããã¯ãå¿
èŠã«å¿ããŠäœãããŸãã
> ã¿ã€ããšãã圢ã«æœè±¡åããŠãããŸãã
> æå㯠java.util.Timer ã¯ã©ã¹ã䜿ã£ãŠããã®ã§ããã
> ããçç±ãããèªåã§åç (+ α) ã®ã¯ã©ã¹ãäœããŸããã
>
> äžèº«ã¯ã©ããªã£ãŠããããšãããšã
> java.util.Timer ããOverlay Weaver ã® ow.util.Timer ãã
> ãããªã£ãŠãŸã:
>
> ã»ã¹ã¬ããã 1ã€ãã€ãã³ãåŸ
ã¡ãããŠããã
> ã»æå»ãæ¥ããããã®ã¹ã¬ããèªèº«ãã€ãã³ããå®è¡ããã
>
> ãã ããOverlay Weaver ã® ow.util.Timer ã¯ãèšå®ã«ãã£ãŠã¯ã
> ã€ãã³ãã«å¯ŸããŠããã®ã€ãã³ãå°çšã®ã¹ã¬ãããå²ãåœãŠãããšãã§ããŸãã
> (ã¹ã¬ããããŒã«ã䜿ããŸãã)
PC 1å°äžã§å¹çããå€ããŒãã®å®éš (ãšãã¥ã¬ãŒã·ã§ã³) ãè¡ãããã«
ãã«ãããã»ããµã掻çšãããã
ãããã暡玢ããŸããã
ã»ã¿ã€ãã¹ã¬ããèªèº«ãã€ãã³ããå®è¡ããã®ãã
ãããšãå¥ã¹ã¬ããã«å®è¡ããã (â ã¹ã¬ããããŒã«) ã®ãïŒ
ã»ã¿ã€ãã¹ã¬ããã¯ïŒã€ãªã®ãè€æ°ãªã®ãïŒ
(ã¿ã€ãã¹ã¬ãããè€æ°çšæããããšã§ããã«ãããã»ããµæŽ»çšã¯å¯èœã)
çµå±ãã¿ã€ãã¹ã¬ãã㯠1ã€ã«ããŠã
åã€ãã³ãã¯ã¹ã¬ããããŒã«ã«å®è¡ãäŸé Œãããšãã圢ã«ããŸããã
ã¿ã€ãã¹ã¬ããã 1ã€ã«ããã®ã¯ã
è€æ°ã«ãããšã次ã®æ©èœãšã®äž¡ç«ãé£ããã£ãããã§ãïŒ
Overlay Weaver (OW) ã®ã¿ã€ã (ow.util.Timer) ã«ã¯ã
PC ãã¢ããã¢ããã«ãªã£ããæèšãæ¥ã«é£ãã å Žåã§ã
ããã«é©å¿ããŠå°æ¥ã®ã€ãã³ãèµ·åã¿ã€ãã³ã°ã調æŽããæ©èœããããŸãã
ããã§ãç®çã«åãã¹ã¬ããããŒã«ãäœããŸã§ãããããèŠåŽããŸããã
ãã«ãããã»ããµã掻çšãããªããã€ãã¹ã¬ããçææ°ãå¶éãããã£ãã®ã§ããã
java.util.concurrent ããã±ãŒãžã«çšæãããŠããã¯ã©ã¹çŸ€ã䜿ãã ãã§ã¯æžãŸãã
èªäœããŸããã詳现ã¯ããã§ã¯å²æããŸãã
ãããŸã§ã®ææã ver. 0.9.2 ã§ãïŒ
2009幎 5æ 1æ¥
Version 0.9.2 ãªãªãŒã¹ã
* ãšãã¥ã¬ãŒã¿ãã¹ã¬ããããŒã«ã䜿ãããã«ãªã£ãã
ããã«ãã£ãŠ "control" ã³ãã³ãéã®äžŠåæ§ã掻ãããã
* äœçš®é¡ãã®æçšãªã¹ã¬ããããŒã«å®è£
(ow.util.concurrent.*) ãçšæããã
* éè² è· / æèšã®ãžã£ã³ãã«ã€ããŠã®æ€åºã»é©å¿æ©æ§ãæ¹åããã
å
æ¥ã2009幎 9æ 16æ¥ã« 0.9.5 ããªãªãŒã¹ããŠããã
ãããŸã§ã¿ã€ããæŽçã§ããã®ã ããã
ã€ãã³ãé§åãšãã¥ã¬ãŒã·ã§ã³ãŸã§ãããããããïŒãšèããŠã
ãã£ãŠã¿ããã§ããŸããã
äœæ¥å 容ã¯æ¬¡ã®éãã§ãïŒ
ã»ã¿ã€ã (ow.util.Timer) ã®ã€ã³ã¹ã¿ã³ã¹ã
OW ã®åæã§åå¥ã«æã£ãŠãããšããããããã·ã³ã°ã«ãã³ã«ããã
ã€ãŸããã¿ã€ãã®ã€ã³ã¹ã¿ã³ã¹ã OW å
šäœã§ã²ãšã€ã ãã«ããã
ã»æå»ã®ååŸããSystem#currentTimeMillis() ã§ã¯ãªãã
ã¿ã€ããæäŸãã ow.util.Timer#currentTimeMillis() ã§ååŸããããã«ããã
ããã§ãOW ãšãããåæ£ç°å¢ãšãã¥ã¬ãŒã¿äžã®æéã®é²ã¿å
·åãã
ã¿ã€ãããèªç±ã«ã§ããããã«ãªããŸããã
ã€ãã³ããã¹ã±ãžã¥ãŒã«ãããæå»ãŸã§åŸ
ã€ã®ã§ã¯ãªããŠã
ãã®æå»ãŸã§é²ãã ããšã«ããŠããŸãã°ãã (â ã€ãã³ãé§å)ããšã
ãã ããã«ãããã»ããµã®æŽ»çšãšã®äž¡ç«ã¯ãŸã ã§ããŠããŸããã
ä»ã®ãšãããã€ãã³ãé§åã®ã¢ãŒãã§ã¯ã
ã¹ã¬ããããŒã«ã¯äœ¿ãããã¿ã€ãèªèº«ãã€ãã³ããå®è¡ããããã«ããŠãŸãã
ã¹ã¬ããããŒã«ã§ã®äžŠååŠçãè¡ã£ãå Žåã«ã
æå»ãã©ã決ã㊠/ é²ããŠããã°ããããèããŠãŸãã
CVS headããŸãã¯æ¬¡ã®ããŒãžã§ã³ (0.9.6) 以éã§ã
次ã®ãã©ã¡ãŒã¿ã true ã«ãããšã
åæ£ç°å¢ãšãã¥ã¬ãŒã¿ãã€ãã³ãé§åã«ãªãäºå®ã§ãïŒ
src/ow/util/Timer.java:
public final static boolean SERIAL_BEST_EFFORT_MODE = false;
éŠè€äžå¹ž
èå¯ãé²ããŠãããããããããããšã«æ°ãã€ããã®ã§ã
ããã«ã²ãšããããã®ã¡ãŒã«ãç¶ããããŠé ããŸã _o_
èŠçŽ: sleep(...) ã®ã€ãã³ãé§å察å¿ã«ã¯
ç¶ç¶ (continuation) ã®æ©èœãããã°ããã
> Message-Id: <20090920.013523...@shudo.net>
> From: Kazuyuki Shudo <20...@shudo.net>
> Date: Sun, 20 Sep 2009 01:35:23 +0900 (JST)
> ãŸã ãã€ãããOverlay Weaver ã®åæ£ç°å¢ãšãã¥ã¬ãŒã¿ã
> ãšããããã¿ã€ãã«ããã€ãã³ã (*) ã®åŠçãæ¹è¯ãç¶ããŠãŸãã
>
> ããã»ã©ããšããšãã€ãã³ãé§åãšãã¥ã¬ãŒã·ã§ã³ãŸã§å¯èœã«ãªã£ãã®ã§ã
> ã¡ã¢ã®æå³ãå
ŒããŠãçµç·¯ãæžããŸãã
> å æ¥ã2009幎 9æ 16æ¥ã« 0.9.5 ããªãªãŒã¹ããŠããã
> ãããŸã§ã¿ã€ããæŽçã§ããã®ã ããã
> ã€ãã³ãé§åãšãã¥ã¬ãŒã·ã§ã³ãŸã§ãããããããïŒãšèããŠã
> ãã£ãŠã¿ããã§ããŸããã
>
> äœæ¥å
容ã¯æ¬¡ã®éãã§ãïŒ
>
> ã»ã¿ã€ã (ow.util.Timer) ã®ã€ã³ã¹ã¿ã³ã¹ã
> OW ã®åæã§åå¥ã«æã£ãŠãããšããããããã·ã³ã°ã«ãã³ã«ããã
> ã€ãŸããã¿ã€ãã®ã€ã³ã¹ã¿ã³ã¹ã OW å
šäœã§ã²ãšã€ã ãã«ããã
>
> ã»æå»ã®ååŸããSystem#currentTimeMillis() ã§ã¯ãªãã
> ã¿ã€ããæäŸãã ow.util.Timer#currentTimeMillis() ã§ååŸããããã«ããã
>
> ããã§ãOW ãšãããåæ£ç°å¢ãšãã¥ã¬ãŒã¿äžã®æéã®é²ã¿å
·åãã
> ã¿ã€ãããèªç±ã«ã§ããããã«ãªããŸããã
> ã€ãã³ããã¹ã±ãžã¥ãŒã«ãããæå»ãŸã§åŸ
ã€ã®ã§ã¯ãªããŠã
> ãã®æå»ãŸã§é²ãã ããšã«ããŠããŸãã°ãã (â ã€ãã³ãé§å)ããšã
ããã§æå» & æéã®æ±ããå®å
šã«äžå
åããŠã€ãã³ãé§åã«ã§ããããšãããšã
ãŸã å®å
šã§ã¯ãããŸããã
äŸãã° Thread#sleep(long ...) ãåãæ®ãããŠããŸãã
ãããŸã§ããsleep() ãã¹ã¬ãããå æããªãããã«ã
ã€ãŸãæ®æ®µã¯ sleep() ããŠãã®ã ãã©ããŸã«èµ·ããŠäœããè¡ããããªå Žåã«ã
sleep() ã§ã¯ãªããŠã次ã«èµ·åããŠãããæå»ãæå®ããŠã¹ã±ãžã¥ãŒã«ããã
ãšãããããªããšããã£ãŠãŸããïŒ
src/ow/routing/chord/Chord.java (Chord å®è£
) ã®æ«å°Ÿã
FingerTableFixer (finger table ã¡ã³ãåŠç) ã¯ã©ã¹ã® sleep éšå:
if (config.getUseTimerInsteadOfThread()) {
timer.schedule(this, Timer.currentTimeMillis() + sleepPeriod, ...
return true;
}
else {
Thread.sleep(sleepPeriod);
return false;
}
â èšå®ã«ãã£ãŠã¯ãThread#sleep(...) ã®ä»£ããã« timer.schedule(...) ãåŒã¶
ãã®æ¹æ³ã§ã¯ã次ã«èµ·åããŠãããéã«
ã¡ãœãã (å
·äœçã«ã¯ run()) ã®å
é ããå®è¡ãå§ãŸããŸãã
ã¿ã€ãããã®èµ·åã§ã¯ã¡ãœããåŒã³åºãããã§ããªãã®ã§ããããããã§ãã
ãã®å Žåã¯ããã㧠OK ã§ãã
ããã§ãä»»æã® (ã¡ãœããéäžã®) sleep(...) ãã€ãã³ãé§åã«å¯Ÿå¿ãããã«ã¯ã
æèšãããšãä»»æã® sleep(...) ãã¿ã€ããžã®ã¹ã±ãžã¥ãŒã«èŠæ±ã§
眮ãæããããã«ã¯ã©ãããã°ãããã
ã¡ãœããå
é ã ãã§ãªãã
ããã°ã©ã äžã® sleep(...) å®äºåŸã®å°ç¹ããã¿ã€ãããåŒã³åºããã°ããããšã
ç¶ç¶ (continuation) ã䜿ããã°ãããã®ã§ã¯ãªããããšã
ãã®ããã« OW ãã Javaflow (ç¶ç¶ã©ã€ãã©ãª) ã䜿ã£ãŠã¿ãããã
ãªã©ãšåŠæ³ããŠãŸãã
éŠè€äžå¹ž