äŒè©±ã§ã¯ã次ã®ãããã¯ã«è§ŠããŸããã
- éèæ°åŠãšã¯äœãããããæããæ¹æ³ã
- éèæ¥çåãã®ãœãããŠã§ã¢ã®é 眮æ¹æ³ã
- Devexpertsããã«ãã¹ã¬ããã®ç 究宀ãæãã€ããæ¹æ³ã
- 䞊è¡æ§ãçºå±ããŠããå Žæãšãè¿ãå°æ¥ã«æµè¡ãããã®;
- äžçããã°ã©ãã³ã°ã®ãªãªã³ããã¯ãã©ã®ããã«ãã·ã¢ã«æ¥ããã
ããã¹ãçã¯ã«ãããããŠããŸãã
éèæ°åŠãšã¯äœãããããŠãããæããæ¹æ³
-ã€ã³ã¿ãã¥ãŒã®éå§åã«ãããªãã¯éèæ°åŠã®å匷ãå§ãããšèšã£ãŠããŸããã ãã®ãããã¯ã¯ã©ã®ããã«ãããŠãªãèå³ãæã¡ãŸãããïŒ
-è·å Žã§ãã®ãããã¯ã«çŽé¢ããŸãã-éèæ¥çåãã®ãœãããŠã§ã¢ãããããæžããŠããŸãã ãããŠæã ãã¯ã©ã€ã¢ã³ããæ¥ãŠå°ããŸãïŒãããã¯ãããŸããïŒ ãããšãããã¯ãããŸããïŒã åæã«ãããŸããŸãªã¹ããŒãã¯ãŒãã話ãããŸããããã®ååã¯ããããŸããã ãããç§ãèå³ãæã€ããã«ãªã£ãæ¹æ³ã§ãã
æåã¯èªåã®æ¬ããèªåã§åŠãŒããšããããäœãããŸããããªãã£ãã ãã®åŸã圌ã¯ããã»ã¹ãäœç³»åããããšã決ããäœç³»çã«å匷ã«è¡ããŸããã ãããŠãã®ãããæšå¹Žã¯ã©ã®ã«ã³ãã¡ã¬ã³ã¹ã«ãç»å ŽããŸããã§ããã 代ããã«ã圌ã¯æç§æžã®å±±ã®äžã«åº§ã£ãŠããŸããã ã¯ããããã§ãç§ã®æ¬æ£ã«ã¯éèæ°åŠã«é¢ããæ¬ããããããããŸããã䞊è¡æ§ã®ãããã¯ã§ã¯ãªããäžæçã«ããã¯ã°ã©ãŠã³ãã«åŸéããŸããã ãã¡ãããç§ã¯åœŒå¥³ã®å匷ãšæããç¶ããŠããŸããã䞊è¡æ§ã«é¢ããæ°ããããšããã¹ãŠåŠã¶ããšã¯èæ¯ã«æ¶ããŠãããŸããã
-çŸä»£ã®éèæ¥çã®æ°åŠã¯ãããã§ããïŒ
-æ¬åœã«ããããã åºæ¬çã«ããããã¯ãã¹ãŠè€éãªéèååã«é¢é£ããŠããŸãã 倧èŠæš¡ãªçµç¹ãéè¡ã¯åžžã«è€éãªãã®ã§ååŒããŠããŸãã ãŸããè€éãªéèååã®ãªã¹ã¯ãè©äŸ¡ããã«ã¯ãéåžžã«éèŠãªæ°åŠãå¿ èŠã§ãã
ããã§ã¯ãããšãã°ãã¢ã³ãã«ã«ãã·ãã¥ã¬ãŒã·ã§ã³ã®ãããªåçŽãªããšã§ãã ããã°ã©ããŒãªã誰ã§ããããç解ããŠããŸããä¹±æ°ãæããè¿œå ãåä¿¡ããŸããã ããã°ã©ãã³ã°ã®èŠ³ç¹ããèŠããšãéåžžã«åçŽãªããã§ãã ããããæ°åŠã®èŠ³ç¹ããã¯ãçµæãçŸå®ã«é¢é£ä»ããããã«æ£ç¢ºã«ä¹ç®ãŸãã¯é€ç®ããå¿ èŠãããæ£ç¢ºãªæ¹æ³ãç解ããããšã¯ãäºçŽ°ãªäœæ¥ã§ã¯ãªãå ŽåããããŸãã
-æããŠãã ãããäžè¬çãªéèæ°åŠãšã¯äœã§ããïŒ ç§ãã¡å šå¡ã倧åŠã§æããæ°åŠã®ã©ã®åéãšæ¥è§ŠããŸããïŒ
-åºæ¬çã«ãããã¯æ°åŠçåæã確çè«ã§ãããã»ãšãã©ã®äººãç 究ããŠããªããããªåéã¯ãäŒè€ç©åãªã©ã®ç¢ºçéçšã§ãã 圌ãã¯çã«å°ãã§ãæããããŠããããã«èŠããŸããã圌ãã¯åºç€ã ããäžããŸãã æè¿ãç§ã¯ãµã³ã¯ãããã«ãã«ã¯å·ç«å€§åŠã®åŠçãšè©±ãããŸããã圌ã¯é«åºŠç¢ºçè«ã®ã³ãŒã¹ãåè¬ãããšç§ã«è©±ããŸããã ããããããã§ãã圌ãã¯ããã«ã€ããŠéåžžã«è¡šé¢çã«è©±ããŸãã ããã圌ããæããããå Žæã§ããå ŽåãHSEãªã©ã®å°éæè²æ©é¢ããŸãã¯éåžžã«å°éçãªéšéã®ããããã§ã ãããŠããããç¥ã£ãŠããåæ¥çã¯ã»ãšãã©ããŸããã è€éãªéèååãæ±ãå Žå-ãã®ç¥èããªããã°ãã©ãã«ããããŸããã
ããã³ãã³ã§å匷ããŠãããšèšã£ãããšãèŠããŠããŸããïŒã
-ã¯ããããã¯é éæè²ã§ã-ç§ã¯æçµçã«ããã«è¡ã£ãããšã¯ãããŸããã ããã§ã¯ãäž»ãªç¹åŸŽã¯ããŸããæç§æžãéåžžã«åªããŠããããšã§ãã ãšããã§ãããããæç§æžã§è¯ãæç§æžãèŠã€ããããšã¯å¥è·¡ã§ãã åã䞊è¡æ§ãåŠç¿ããããã«åŠçãå§ãããšããç§ã¯å¶ç¶èŠã€ããæç§æžãããã€ãæã£ãŠããŠããããããšãŠãæ°ã«å ¥ã£ãã®ã§ãåŠçãæãããšããã¢ã€ãã¢ããããŸããã
ãããŠãéèæ°åŠã§ã¯ãèªåã§å匷ããããšãããšãããšãŠãäžéã§ããã ç§ã¯äŒè€åŸ®ç©åã«ã€ããŠã°ãŒã°ã«ã§èª¿ã¹ãããã€ãã®æ¬ãèŠã€ããããããèªãã§ã¿ãŸãã-ã§ãããã¯å®äºã§ãã ããã¯æ確ã§ã¯ãããŸãã-ãªããäœããæ§é ããããŸããã ãããŠãã³ãŒã¹ã§ã¯ããŸããéåžžã®æç§æžãéžæãããèè ãè¬çŸ©ãè¡ããŸãã ãããŠãããããã¹ãŠã¯è«ççã«æ瀺ãããå®çšåã«éç¹ã眮ãããŸããã ãã®ãã¹ãŠãå¿ èŠãªçç±ãæããã«ãªããŸãã æ¬åœã®äŸã¯ãããªãã瀺ããããããã®å®¿é¡ãäžããæ¬åœã«åé¡ã解決ãããã³ãŒããæžããŸãã ãããŠãããã¯ãã¹ãŠæ°åŠã§ãããäžæ¹ã§æ°åŠãå¿çšãããã®ã§ãããããããã¹ãŠãããã°ã©ã ããå¿ èŠããããšæåŸ ããŠããŸãã
çŸåšãçŸä»£ã®éèæ°åŠã§ã¯ãéãã圢ã§ãçŸã®ããã«ãå®éã«äœãè¡ãããŸãããå®éã«äœ¿çšããããã¹ãŠã®ã¢ãã«ã¯ãéãã圢ãšã¯èŠãªãããŸããã ãããã¯ãã¹ãŠæ°å€çææ³ã§ãã ãããŠãæéå·®åæ³ã䜿çšããŠæ¡æ£ã°ãªããã解ãããã¢ã³ãã«ã«ãæ³ã䜿çšããŠäœããã¢ãã«åããŸãã ãããŠãæ°åŠã¯ãæéå·®åã¹ããŒã ãå°ãåºãããã¢ãã«åããå¿ èŠããããã®ãç解ããããã«ã®ã¿å¿ èŠã§ãã ãããŠãã³ãŒãããªããã°çããåãåããªãã®ã§ãã³ãŒããæžãå¿ èŠããããŸãã
-å€ãã®äººã¯çŸä»£ã®æ°åŠãçŸå®ããéåžžã«é ããã®ã ãšéé£ããŠããŸãã ãããŠããã§-ç§åŠã¯çŽç²ã«å®çšçã§ããïŒ
-æ°åŠ-ããã¯ç°ãªããŸãã ç§èªèº«ã䞊è¡æ§ãæ¹å€ããŠããŸãã ãã®ãããã¯ã«é¢ããå€æ°ã®ç§åŠè«æãèªã¿ãŸãããããã®ååã¯å®å šãªãŽãã§ãã 人ã ã¯ããçš®ã®ã¢ã«ãŽãªãºã ãæãã€ããæ¯èŒãè¡ããŸãããå®éã«ã¯ãããã®ã¢ã«ãŽãªãºã ãå¿ èŠãšãã人ã¯ããŸããã
ãã¡ããããã§ãåãã§ãã æ°åŠ-ããã¯ããèªèº«ã§åããŸãã ããããã¹ãŠé©çšããåå¥ã®é åãåå¥ã®é åããããŸãã ãããŠããããæ£ããæç§æžãæã€ããšãéèŠã§ããçç±ã§ãã ãã æœè±¡çãªæ°åŠã®æç§æžãåãããšã¯äžã€ã®ããšã§ãã ããªãããããä¹ãè¶ããŠããéãããªãã¯å€ãã®æéãè²»ããã§ãããããããŠã2ã3ã®å®çãŸãã¯äºå®ãã»ãšãã©åœ¹ã«ç«ã¡ãŸããã ãããŠãææãæ§é åãããŠãããšããå®éçãªåé¡ã解決ããããã«å¿ èŠãªãããã®äºå®ãéžæãããç§åŠçç¥èã®èšå€§ãªåºç€å šäœãããã§ãŒã³ã«å ¥ããããŠãããšããããã¯ãŸã£ããç°ãªãåé¡ã§ãã
ã«ã¹ã¿ã ãã«ãã¹ã¬ããããã°ã©ãã³ã°ã³ãŒã¹
-æè²ã«ã€ããŠå°ã話ããŸãããã ããªãã¯10幎以äžæããŠããŸããããïŒ ãã€å§ããŸããã-ããŒãªãããšã·ã£ãããã®æç§æžã¯ãããŸãããïŒ
-2007幎ããã»ãŒ10幎ã ãã®æç§æžã¯ãŸã ååšããŠãããããããå šäœã§è€éãªãã®ã§ããã æãå§ãããšããææãæ··åããããããŸããŸãªç§åŠäœåãè¿œå ããããåãHerlichiã®èšäºã®ææãè¿œå ãããããæç§æžãããã€ããã£ãã®ã§ãç§ã«ãšã£ãŠéåžžã«å°é£ã§ããã ã€ãŸããèªåã§ãã®ã³ãŒã¹ã®æ§é ãäœæããå¿ èŠããããŸããã
-ã©ããã£ãŠãã£ãã®ïŒ
-ããã¯ãã¹ãŠ1åã®æ¬ããå§ãŸããŸããã 奜ããªæç§æžãå¶ç¶èŠã€ããŸããã å®éãæç§æžã¯éåžžã«å¥åŠã§ãã Gargã®èè ã¯ãJavaã§ã®ã³ã³ã«ã¬ã³ãããã³åæ£ã³ã³ãã¥ãŒãã£ã³ã°ãšåŒã°ããŠããŸã ã
第äžã«ããã¹ãŠãéåžžã«è¡šé¢çã«èª¬æãããŠããã®ã§ãç§ã¯ããã奜ãã§ãã-åæå®è¡æ§ãšå°ããªã¢ããªã±ãŒã·ã§ã³ã®æç§æžã§ã®åæ£ã 第äºã«ããããã©ã®ããã«ããã°ã©ã ã§ãããã®å®äŸããããŸããã ãããŠç¬¬äžã«ãå®éã®ç§åŠç 究ãžã®èšåããããŸããã ã€ãŸããå€ãã®å®çãçç¥ãããå€ãã®äºå®ãçç¥ãããŸããããæçµçã«ã¯è¿œå ã®åç §ãžã®åç §ããããŸããã
-ãã®ãã¥ãŒããªã¢ã«ã¯ã Java Concurrency in Practiceãšã©ã®ããã«éããŸãããïŒ
-å€ãã®äººã«ã ããã¯ãŸã çè«çãªæ¬ã§ãããå®å家åãã®ãã¬ãŒã³ããŒã·ã§ã³ããããŸãã å®éã«å¿ èŠãªãã®ãéžæããããšããŠããŸãã ãããŠåœŒå¥³ã¯æ¬åœã«ç§ã倢äžã«ãããã ãã®æ¬ã¯ããŸãã«ãè¡šé¢çãªããã«æããã®ã§ãç§ã¯ãã®äžã«ãããªã³ã¯ããã©ããé¢é£ããç§åŠæç®ãç 究ããåŠçã®ããã«äœããéžã³ãããããèªåã®ã³ãŒã¹ãäœããŸããã æåã®è³æã®ãã¬ãŒã³ããŒã·ã§ã³ã®é åºã¯ãGargãšã»ãŒåãã§ããã ããããç§ã¯åœŒã®è³æããåãã©ã³ããŒãããã«ãªãŒããªã©ã®ç§åŠçç 究ããåŸãçè«ã§åžéããŸããã
ãããŠã ãã«ãªãŒããšã·ã£ãããã®å¶ç¶æ§ã«é¢ããæç§æžããã§ã«ãããŸããã ãã®åŸãç§ã¯å€ãã®ããã°ã賌èªããŸãããçºè¡šãšã¬ãã¥ãŒãèŠããšããã«ãç§ã¯ããã«è³Œå ¥ããŠèªã¿ãŸããã ãããŠåœŒã¯ã·ã§ãã¯ãåããïŒãããã«ããïŒ ãã®ãããªã³ãŒã¹ãèªãããã«æ¬åœã«å¿ èŠãªãã®ã¯æ¬¡ã®ãšããã§ãã ãã以äžã§ããã以äžã§ããªããã é©åãªæ·±ããé©åãªã·ãŒã±ã³ã¹ãé©åãªç·¯åºŠã ãã®åŸãã³ãŒã¹ãå°ã調æŽããŸããã
-ããããç§ã¯ãã®æ¬å šäœããã¹ã¿ãŒããŸããã§ããã 圌女ã«ã€ããŠäœãäžçªã€ã©ã€ã©ãããç¥ã£ãŠããŸããïŒ ããã¯ããªãæ²ãã£ãèšèªã§æžãããŠãããè±èªèªäœã¯ãªããšãªãå¥åŠã§ãããäŸã§ããããŸãã èŠããŠãããŠãç¬ã猶ã®æåã®äŸããããŸãã ããããèè ãç§ã«èšã£ãŠããããšãç解ããããšããŠ2æé座ã£ãŠããŸãã...ãããŠãç§ã¯çªç¶ããããã¢ãããã¯ã¬ãžã¹ã¿ã§äœããè¡ãæ¹æ³ã®å€å žçãªäŸã§ããããšã«æ°ä»ããŸããã ãã®ãã¹ãŠãã©ã®ããã«ä¹ãè¶ããŸãããïŒ
-ãã§ã«æºåãã§ããŠããã®ã§ãç§ã«ãšã£ãŠã¯ç°¡åã§ããã ãã§ã«ããã®å€åœ¢ããããŸãããLamportãšä»ã®èè ã®èšäºã§ãç¬ã䜿ã£ãŠãããã®äŸããã¹ãŠ100,500åèªã¿ãŸããã ç§ã¯ãããã©ãããæ¥ãã®ãç¥ã£ãŠããŸããã æãã€ããã®ã¯HerlichiãšChavitã§ã¯ãªãã£ãããããã¯ãã§ã«20幎åã®å€å žã§ãã ããã§ãç§ã«ãšã£ãŠã¯ãã¹ãŠèŠªãã¿ãããã芪æãªããŸããã ãããŠãç§ã¯ãã®æ¬ãè¿œå ã®èªæžãšããŠåŠçã«å§ããŸããç§ã¯èª°ã«ã§ããããèªãããšã匷å¶ããŸããã ç§ã®ã³ãŒã¹ãããç§ã«ã¯ã»ãšãã©åœ¹ã«ç«ããªããšæãããçè«ã®äžéšãæšãŠãŸããããåŠçã«ã¯ãããèªã¿ãŸããã
ãçåŸã«äœãäŒããããäœãäŒããªãããã©ã®ããã«éžæããŸããïŒã
ãç§ã¯çåŸãã¡ã«ããšãŠãçŸãããŠèªæã§ã¯ãªããšæã£ããã®ãäžããŸããã äŸãã°ãç§ã¯ã圌女ãéåžžã«çŸãããç©äºã®æ¬è³ªãç解ã§ããããã«æããã®ã§ãç§ã¯åŠçã«Herlichã®ã³ã³ã»ã³ãµã¹å®çã蚌æããŠããŸãã CASãå¿ èŠãªçç±ãç解ã§ããŸããCASããªããã°ã2ã€ã®ã¹ããªãŒã ã§ãããããé«ãæ§é ããªããã°ã³ã³ã»ã³ãµã¹ã«éããããšãã§ããŸããã ãŠãããŒãµã«ãã¶ã€ã³ã衚瀺ããŸãã Herlichiãšåãæ¹æ³ã§ç·Žç¿ãããŸããã決ããŠäœ¿çšããããšã¯ãããŸããã ããã¯éåžžã«äººçºçãªããšã§ãããåŸã§å®éã®ã¢ã«ãŽãªãºã ã§å¿ èŠãšãããææ³ã䜿çšããŸãã ãããŠäžè¬çã«ãç§ã¯ä»ã®æ¢ã«å®çšçãªã¢ã«ãŽãªãºã ã®ãããã¯ãæ§ç¯ããŠããããã€ãã®ããªãã¯ãããçŽç²ã«çè«çãªã¢ã«ãŽãªãºã ã«ã€ããŠè©±ããŸãã
-ãšããã§ãããšãã°ãã©ã³ããŒãã®äœåãèªãã å Žåã圌ã®æ§é ã¯å°ã人工çã«èŠããŸãã ããã¯èšŒæã«åœ¹ç«ã¡ãŸãããã¢ããªã±ãŒã·ã§ã³ãç解ããããã«ãœãŒã¹ã³ãŒããéããšãä»ã®ãã¹ãŠãããã«ããããšãããããŸãã å®éã«ã¯ããããã®ãœãªã¥ãŒã·ã§ã³ã¯å¹æçã§ã¯ãããŸãããïŒ
ãã¯ããæ£ç¢ºã«ãã ãã®çè«å šäœãç»å Žãã20ã30幎åã«ç 究è ãæ©ãŸããäž»ãªè³ªåã¯ããäœããããããšã¯å¯èœãã©ãããã§ãããå¹çã«ã€ããŠã¯èª°ãèãããå¯èœãã©ããã ããèããŸããã ãããŠãå¯èœãªããšãšããã§ãªãããšã®çŸããå®çããããããããŸããã ãããŠãã¬ãžã¹ã¿ãŒã«é¢ããããããã¹ãŠã®çè«çæ§æãã1åã®è¬çŸ©ã§åŠçã«ãéåžžã«è¿ éã«ãããããŸã§äŒããŸãã ç§ã¯åœŒãã«å¿ããç¥ãããŸããã ãªããªããäžæ¹ã§ã¯ããããã¹ãŠå¯èœã§ãããä»æ¹ã§ã¯ãããã®ã¢ã«ãŽãªãºã ã¯ãã¹ãŠå®çšçãªäŸ¡å€ããªãããšã瀺ãããããã§ãã ãããŠãã³ãŒã¹ã®åŸåã§ã¯ãå®çšçãªã¢ã«ãŽãªãºã ã«éäžããŸãã ããšãã°ãçŸåšã®ãªã¹ãã§ã¯ãå€ãã®å Žæã§äœ¿çšãããŠããå®å šã«å€å žçãªã¢ã«ãŽãªãºã ã話ããŠããŸãã
-åäžå€éãæã€ã®ã¯ã©ãã§ããïŒ
-ã¯ãã ããã«å¿ããŠã詳现ã«å解ããŸãã ã¢ã«ãŽãªãºã èªäœãå®éã«äŸ¡å€ãããã ãã§ã¯ãªãããã§ãã è€éããšçç£æ§ã®ãã©ã³ã¹ãšããç¹ã§ãæ¹åã®è»ãããã€ãã®ç§åŠçç 究ããã¹ãŠåããã®ããã£ãã«ãããããããããã¯ãã¹ãŠãåŒãè£ããŸãã
ããããããšãã°ãHashMapã«ã¯ãã®ãããªåå©ã¯ãŸã ãããŸããã ããã¯ä»ãªã掻çºãªç 究ããŒãã§ãããç¹ã«ç§ãã¡ã®ç 究æã§è¡ã£ãŠããŸãã HashMapã¯äžè¬ã«ãã¹ãŠã®æ§é ã®ããŒã¿æ§é ã§ããããã§ãã åžžã«äœ¿çšãããŸãã
Amazonã®CEOã«ã€ããŠç¥ãããŠããèªè»¢è»ãããããã§ãã 圌ãåŠçã®èŽè¡ã«è©±ããããšããã¢ã«ãŽãªãºã ãç 究ããŠããåŠçã¯åœŒã«å°ããŸããïŒãæããŠãã ãããã©ããªããŒã¿æ§é ãå¿ èŠã§ããïŒ ã¢ã«ãŽãªãºã ã¯äœã§ããïŒ äœã䜿çšããŠããŸããïŒã 圌ã¯ã圌ãã«ãšã£ãŠæãéèŠãªããšã¯ãããã·ã¥ããŒãã«ãããã·ã¥ããŒãã«ãããã·ã¥ããŒãã«ãã ãšçããŸããã ãããŠãããã¯ãã¹ãŠçå®ã§ãã
åãããšããããŸãã ãŸãã倧èŠæš¡ãªããžãã¹ã¿ã¹ã¯ã§ã¯ãåžžã«æ¬¡ã®ããã«ãªããŸããããã·ã¥ããŒãã«ã¯æãéèŠãªããŒã¿æ§é ã§ãã ãããŠãã¡ããã䞊è¡æ§ã®èŠ³ç¹ããã¯ãå€ãã®æªè§£æ±ºã®è³ªåããããŸãã ã€ãŸãããããå®è£ ã«ãããŠã©ãã ãç©æ¥µçã«å€åããŠããããèŠãããšãããããŸãã Javaã®å éšã¯èŠããŸãããéåžžã®HashMapã¯ããã«ã©ã®ããã«å¯Ÿå¿ããŠããŸããã
-ConcurrentHashMapããã£ããã«ïŒ ã
ããŸãã圌ã¯ééã£ãæ¹æ³ã§æžãçŽãããŸãããã é·ã話ããããŸããã æãã¯ã8幎åã«PHPã§æšæºèŸæžãã©ã®ããã«é 眮ãããããç 究ãã人ç©ã«ãã£ãŠäœæãããWebãµã€ãã®æ¬è³ªã詳ãã調ã¹ãããšãªããããŒãåãããã·ã¥ãæã€ãªã¯ãšã¹ããè¡ããŸããã ãããŠã圌ãã¯ãããç°ãªããµã€ãã«éãå§ããŸããã
è©Šãããµã€ãã®95ïŒ ãããŠã³ããŸããã ãããŠãããã«ã€ããŠåœŒãã¯çŽ æŽãããèšäºããªãªãŒã¹ããŸããã ãã®èšäºã®åŸãããã·ã¥ã®ããã®éäºãå§ãŸããŸãããããã«ã¯ããµã³ã圌ãã®ããã«æŠãå§ããããšãå«ãŸããŸãã Sunã®æåã®ã€ãã¬ãŒã·ã§ã³ã¯ãæååã®ããã·ã¥ã³ãŒããã©ã³ãã åããããšã§ããã ãããŠã圌ãã¯ãããåãªãç·ã§ã¯ãªãããšã«æ°ã¥ããŸããã ãããŠäžè¬çã«ããã¹ãŠã¯çŸåšã®å®è£ ã§çµãããŸãããããã·ã¥ããŒãã«ã®ãã±ããããã£ã±ãã«ãªããšããã¹ãŠãã©ã³ã¹ããªãŒã«çœ®ãæããããŸãã ããã®ç®æšã¯ãããã«ãŒãšã®å®å®ããæŠãã§ãã ææªã®å Žåãããã·ã¥ããŒãã«ã¯OïŒN 2 ïŒã¢ã«ãŽãªãºã ã«çž®éãããå°ãªããšãOïŒN log NïŒã§æ©èœããŸãã å®éã®ãŠã§ããµã€ãã§ã¯ãNã®èŠæš¡ã¯ã©ã®ãããã«ãªã£ãŠããŸããïŒ ãã¶ã1äžã10äž...ãããŠã©ããã«N 2ãããã°ãã·ã¹ãã ã¯ããŠã³ããŸããã 100,000å¹³æ¹ã¯ãã§ã«å€ãããããã§ãã ãããŠãããªããå°ããªNãæã£ãŠããå Žå-äœããéåžžã¯ãçããŸããã

ãã«ãã¹ã¬ããïŒç§åŠãããžãã¹ãïŒ
-ç§ãç解ããŠããããã«ãããªãã®äŒç€Ÿã®æ±ºå®ã¯ããã«ãã¹ã¬ããã§ã®é«ãã¯ãŒã¯ããŒãã«é¢é£ããŠããŸãã æããŠãã ããããããããããã«ãªã£ãã®ã¯ãããªããé貚ã«èå³ãããã®ã§ããïŒ ãŸãã¯ãå€åãå察ã«-ä»äºã¯ãã®ãããã¯ã«çªå ¥ããããšãäœåãªããããŸãããïŒ
-ããã¯ãããå¶ç¶ã§ãã å æé¢ä¿ã远跡ããããšã¯å°é£ã§ãã ç§ãã¡ãå§ãããšãïŒããã¯å€ä»£ã2000幎ããŸãã¯ããããå°ãåã®ããšã§ããïŒãç§ãã¡ã¯å°ããªäŒç€ŸãšããŠããã¹ãŠãäžåã«åŒãåããŸããã åœæããããããŒã ã®ããã°ã©ããŒã¯éã«èŠåãã ãã®äŸ¡å€ãããã人ã ã¯èª°ã«ã§ãäœã§ã泚æããçšæãã§ããŠããŸãã...ãããŠãã©ããããããéèåéã®ããã€ãã®ãããžã§ã¯ãã«å¶ç¶åºããããŸããã ç§ãã¡ã¯ããããäœãå§ãããããæ°ã«å ¥ããŸããã ãããŠ2幎åŸãç§ãã¡ã¯ä»ã«äœãããããªãããšã«æ°ã¥ããä»ã®ãããžã§ã¯ãããããŸããã ãŠã§ããµã€ãã®éçºãã¢ãŠããœãŒã·ã³ã°ã¯äžåè¡ãããååŒããããŒã«ãŒãååŒæã®ã¢ããªã±ãŒã·ã§ã³ã®ã¿ãæ±ãããšã«ããŸããã
ä»ã®ãã¹ãŠã¯ãã®æ±ºå®ã®çµæã§ãã ãããã®ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸåŠãå§ãããšãåŒçšã®è»¢éã«åé¡ãçãå§ããŸãã ãªããªããããã¯ãããããããäž»ãªååŒã¯ã¢ã¡ãªã«åžå Žã«éäžããŠããããã§ãã ç¹°ãè¿ãã«ãªããŸãããæŽå²çã«éåžžã«è€éãªéèååãããããçš®é¡ã®ãªãã·ã§ã³ã«åŸäºããŠããŸããã ãŸããæ°çŸäžã®æ¥œåšã1ç§ãããæ°åäžã®ã¯ãªãŒãããããŸãã ãããã¯ãã¹ãŠäœããã®æ¹æ³ã§åŠçãã顧客ã«éä¿¡ããå¿ èŠããããŸãã æ°äžäººã®é¡§å®¢ãããŸãã
ãããŠããããææ¡ããå¿ èŠããããŸããã æåã«ãã³ãŒããæžãçŽããæžãçŽããç 究ãããããã¡ã€ãªã³ã°ããããã«ããã¯ãèŠã€ãããããä¿®æ£ããæ¹æ³ãèŠã€ããŸã...æåã®æ°å¹Žéã¯ããã¹ãŠãæ±ãšè¡ã§ç¬å çã«è¡ãããç§åŠã®ãªããœãªã¥ãŒã·ã§ã³ãçºæããŸããã ãããŠãç§åŠã¯ã©ããããããå¶ç¶åºãŠããŸããã ç§ãã¡ã¯çãã®åéã§ç¬åŠã§ãããåæ¬ã¯è¡šçŽããšã«æ°ããããŠããŸããã
ãããŠã2006幎ã«Java Concurrency in Practiceãç»å Žãããšããããªãã¯ãããæã«å ¥ããŠããããå®ç©ã§ããããšãèŠãŸããïŒ ããããããªãã¯ãã§ã«ãã®ãã¹ãŠãç¥ã£ãŠããŸããå®éã®ä»äºãããŠããã®ã§ãããªãã¯ãã§ã«ãã®ãã¹ãŠã«èªåèªèº«ã§æ¥ãŠããŸãã ãããã誰ããããããã¹ãŠäœç³»åããããšã®ããããç解ããŠããŸãã ãããŠãæ°ããããã°ã©ããŒãæ¥ããã圌ã«æ¬¡ã®ããã«äŒããããšãã§ããããšãç¥ã£ãŠããŸãïŒãããã§ãJavaåæå®è¡æ§ãå®è·µããŠãèªãã§ãã ããã ç¥èã®èŠçŽããããŸããã ãããŠãããªãã¯ãã®ç¥èã®ããã«ãã®æ¬ã«æè¬ãå§ããŸãã ãããŠãããªãã¯ããªãã®è¡ã®ããããããŒãžã®äžã§ç³ã蟌ãæºåãã§ããŠããŸãïŒ ããã«èè ã¯æžããŠããŸãããããªãã¯ãã§ã«ç¥ã£ãŠããŸãã ç§ã¯ããã«ããïŒ æ¬åœã«ããïŒ ããããªããšããéªãéã£ãŠãããªãã¯å®å šã«æ»ãã§ããŸããŸããã
-äžè¬ã«ããã®æ¬ã¯éåžžã«èå³æ·±ããããéåžžã«èå³æ·±ããã®ã§ãã ãããŠãä»æ¥è¡ãããŠããããã©ãŒãã³ã¹ãã¹ãã®çµæã¯ããªãã¯ã€ã«ãã«èŠããŸãã ä»ãçŸå®ã¯å®å šã«ç°ãªã£ãŠããŸãã ãããã©ã®ããã«çºå±ãããã芳å¯ããããšã¯èå³æ·±ãã§ãã
-ãã¡ããããã®å€ã¯ããã©ãŒãã³ã¹çµæã«ã¯å«ãŸããŸããã ãã¶ã€ã³ãã³ãã¬ãŒãã®äŸ¡å€ã ããã¯ç¥èãæ§ç¯ããããªããæ£ããèããããã«ããŸãã åæå®è¡æ§ã®äž»ãªåé¡ã¯ããã¹ããéåžžã«é£ããããã°ãèš±å¯ããã®ãéåžžã«ç°¡åã ããã§ãã ãã¹ãã¯å°ãªããšã10åå®è¡ã§ããŸããããšã«ããåãæ¿ãã«ããäžæãããã·ã¹ãã ã«èœã¡ãŸãã ãããã£ãŠãããªããšé£äººããããŠæ°å¹Žä»¥å ã«ãã®ã³ãŒããèªã人ã®äž¡æ¹ãæ£ããããšãç解ãããããªæ¹æ³ã§ã³ãŒããæžãå¿ èŠããããŸãã ã³ãŒããæžãããšã¯ã©ããããããçŽããããã®ã§ãæ£ãããšèªåã«çŽåŸãããã«ã¯ã©ãããã°ããã§ããããïŒ ãããŠããããJavaoncurrencyin PracticeãæããŠããããšã§ãã 圌女ã¯ãã¿ãŒã³ãæããŠããŸãã ããããæžããšãä»ã®äººãããããç°¡åã«èªèãããã¹ãŠãããã«ããããšãç解ãããããªããŸãã
ããAPIäœæã¢ãããŒã
æè¿ã OpenHFTãæ åœããŠããPeter Laurieãšè©±ãããŸãã ã 圌ã¯ããã¬ãŒã ã¯ãŒã¯éã®ãã¹ãŠã®éäºã¯ãã¯ãããã©ãŒãã³ã¹ã®ããã§ã¯ãªããæäŸããããœãªã¥ãŒã·ã§ã³ã䞊è¡æ§ã®ãã¹ãŠã®åé¡ã解決ããäžçš®ã®éããç®±ã§ãããšä¿¡ããŠããŸãã ãªããªããç§ãã¡ãããã€ãã®äžŠè¡æ§ãã³ã人ã ã«é ããšããã¹ãŠã®nafigãäžè¬ã«åŽ©å£ããããã§ãã ããªãã®ã³ãŒãããã«ãã¹ã¬ãããç解ããŠããªã人ã«å°éãããšããäºå®ã«ã©ã®ããã«èŠåŽããŸããïŒ
-ç§ãã¡ã¯æŠã£ãŠããŸããã å¥ã®ããžãã¹ããããŸãã ç§ãã¡ã¯æçµé¡§å®¢ã®ããã«æ±ºå®ãäžãã®ã§ããã®ãããªåé¡ã¯ãããŸããã ããã°ã©ããŒãããç¹å®ã®äººã ã«ããŒã«ãæäŸããŸãã
-ã€ãŸããAPIãæäŸããªãã®ã§ããïŒ
-ç§ãã¡ã¯äžããŸããããããåçŽåããããšããŸãã ãããéå±€åã¢ãŒããã¯ãã£ã§è§£æ±ºããŸãã äœã¬ãã«ã®APIãããããã¹ãŠã®åæ°ãåºãŠãããå·Šãžã®ã¹ããããå³ãžã®ã¹ããããå°é·ã«ãã£ãŠçç ŽãããŸããã ãããããã®äœã¬ãã«ã䜿çšããŠããã®ã¯ç§ãã¡ã ãã§ãããç§ãã¡ã®äŒç€Ÿã«ã¯ããããã®å°é·ã®å¯ŸåŠæ¹æ³ãç¥ã£ãŠãã人ã¯éåžžã«å°æ°ã§ãã
ãããŠããã¹ãŠã䟿å©ã§ç解å¯èœãªé«ã¬ãã«ã®APIããŸã ãããŸãã ãããŠãç§ãã¡ã¯äœãäžã«ããã®ãããèšããŸããã ææžåãããŠãããç解å¯èœã§ãã ãã°ãå®æçã«çºçããŸããããã°ãèŠã€ããŠä¿®æ£ããŸãã
Devexpertsã¯äœãããŸãã
-éåžžã«èå³æ·±ãããã£ãšæããŠãã ããã èŠç©ããã顧客ã«éä¿¡ããååŒæã«éãè¿ãåæ£ã·ã¹ãã ã¯ãããŸããïŒ
-ãããããããŸãã éåžžãåçŽçµ±åãœãªã¥ãŒã·ã§ã³ãäœæããŸãã ã»ããã¢ããèŠç©ããã®ââ䜿çšã¯ãåœç€Ÿã®ããžãã¹ã®ã»ãã®äžéšã§ãã å¥ã®è£œådxFeedããããŸã-ããã¯å®éã«ã¯ã¢ã¡ãªã«ã®å¥ã®äŒç€Ÿã§ããããã¹ãŠã®ååŒæïŒã³ãŒã¹ãèŠç©ããïŒããããŒã¿ãåéãããããåäžã®åœ¢åŒã§åäžã®APIãä»ããŠããã±ãŒãžåœ¢åŒã§é¡§å®¢ã«è²©å£²ããŠããŸãã ãããŠãããã¯ãã äžã€ã®å°ããªæ¹åã§ãã éåžžã«å°ãã-æ°å人ãããã§åãåãããŠããŸãã
ãããŠãäŒç€Ÿã®æ®ãã®éšå-ç§ãã¡ã¯äœãæžããŸãã...ãããŒã«ãŒãåãã圌ã¯å€ãã®æ å ±ã·ã¹ãã ãå¿ èŠãšãã顧客ãèæ ®ããããã¯ãªãã£ã¹ãç¶æããååŒãèæ ®ããå¿ èŠããããŸã...ãããã®ã·ã¹ãã ãæã€èšå€§ãªæ°ã®ããŒã ããããŸãäœæããŸãã
-ãããŠã亀æãéåžžã«ç°ãªããŸãããïŒ
-亀æã¯èªååãããŸããã ååŒæã¯ãã¹ãŠç€Ÿå ã§è¡ãããšã奜ã¿ãŸãã ããããããããšå€§éã«çµ±åããŸãã ã»ãšãã©ãã¢ã¡ãªã«äººã§ãããã¢ãžã¢ããããMICEXã¯é·ãéã¯ã©ã€ã¢ã³ãã§ãã ãããŠä»ã圌ããšã®è¯å¥œãªé¢ä¿ããããŠRTSã¯ç§ãã¡ã®è¯ã顧客ã§ããã ãã®åŸãRTSãšMICEXãçµ±åããããšããã¡ã€ã³ã®æ å ±ã·ã¹ãã ãžã®çµ±åã¯å¥œãŸãããããŸããã§ããã ãããããã·ã¢åžå Žã§ã¯äžè¬çã«é¡§å®¢ã¯ã»ãšãã©ããŸããã ã¹ã±ãŒã«ãåãã§ã¯ãªããšããçç±ã ãã§ã
-ãããŠãã¢ã¡ãªã«ã®çºæ¿ã¯ç§ãã¡ã®ãã®ãããã¯ããã«å€ãã®ã§ããïŒ
-ã¯ããããã¯äº€æã«ã€ããŠã§ãããããŸããã ããã®ãã¬ãŒãã£ã³ã°ã¿ãŒããã«ãæåããäœæããŸãã åãããŒã«ãŒã¯ããã¿ãé£äººãšåãã«ããããªãããéããã®ã«ãããã ãããŠã以åã«åœŒããããå°ããªå§å¡äŒãè¿œããããŠããããä»ã§ã¯ããã¯é·ãéäž»ãªæ©èœã§ã¯ãããŸããã ãã¹ãŠã®ãããŒã«ãŒã®ææ°æã¯éåžžã«äœãã§ãã ãããŠããã䟿å©ãªã¯ã©ã€ã¢ã³ãã€ã³ã¿ãŒãã§ãŒã¹ãæ±ããŠããŸãã åãããŒã«ãŒã¯ãŠããŒã¯ãªãã®ãæãã§ããŸãã äœã§ãååŒããããšãå¯èœã§ããããã£ãŒãããããããã¯çŸãããé«éã§ãã¹ããŒããŠã³ããŸããã§ããã
-ãã®ãŠã§ãã¯ãããŸããïŒ
-ããã ãã§ãã ç§ãã¡ã¯ãŠã§ãããã³ããšããã¯ã¹ãããã®äž¡æ¹ãè¡ã£ãŠããŸãã å°é家ã¯èªåã§ç¹å¥ãªéã®æ£ã眮ããããã«5ã9å°ã®ã¢ãã¿ãŒãæããŸãã ãããŠããããã®ã¢ãã¿ãŒã¯ãã¹ãŠæ å ±ã§æºããããŠããŸãã ããã«ããã¹ãŠããã®ããã«åºãããæé·ãå§ããŠããããã§ãã ãã®ããã®æ©æ¢°ã補é ããç¹å¥ãªäŒç€Ÿãã¢ãã¿ãŒçšã®ç¹å¥ãªã©ãã¯ããããŸãã
-ããã¯Windowsã§ãããïŒ
-Javaã§èšè¿°ããŠãããããWindowsããã³Mac OS Xã§äœæ¥ã§ããŸããããããå ·äœçã«ã¯ãWindowsã§ãã®ãããªããšãã§ããŸãã
-ãããã£ãŠãããã»ã©å€ãã®ã¢ãã¿ãŒããµããŒãã§ãããããªã«ãŒããããããŸããã
-äžåºŠã«è€æ°ã®ãããªã«ãŒããæ¿å ¥ãããšãããã ãã§ãã åé¡ãããŸããã
-ããã«ã¯åŒ·åãªã³ã³ãã¥ãŒã¿ãŒãå¿ èŠã§ããïŒ ç§ãç解ããŠããããã«ãã³ã³ãã¥ãŒã¿ãŒèªäœã«ç¹å¥ãªè² è·ã¯ãããŸããããã®ã¿ã¹ã¯ã¯ãåã«ããŒã¿ãé§åããŠè¡šç€ºããããšã§ãã
ãäœããããã«äŸåããŸããã ãã¡ãããããã¯äž»ã«ããŒã¿ã®è¿«å®³ã§ãããç»é¢ã¹ããŒã¹ã倧ãããããç»é¢ãå€ããšããçç±ã ãã§å€§éã®ããŒã¿ãæäœããå¿ èŠããããŸãã ãŸããããã¯ãŸãããã¹ãŠã®ã³ãŒããã©ãã ãå¹ççã«æžãããŠãããã«äŸåããŸãã ããã©ããããå€ãã¯ãããã«åŸäºããŠããŸãã åæãããã³ãã¹ãŠã®èŠç©ããŒã¿ããŒã¹ã¯ããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒã«ä¿æãããŸãã äœããæ§ç¯ããå Žåãããã§é »ç¹ã«åæãããŸãã ä»ã§ã¯åŸã ã«ãã¹ãŠã§ãã...
-ãããŠããªã圌ãã¯ïŒ ããã¯äœé 延ã®ããã§ããïŒ
-ããããäœé 延ã¯äžè¬çã«å¥ã®åé¡ã§ããããŸã£ããç°ãªãããžãã¹ã§ãã ããã§ã¯ãããããã¹ãŠã®ã¢ãã¿ãŒãå¿ èŠãšããããã§ã¯ãªããéåžžã«é«éã«åäœããã³ãŒããäœæããŸããäž»ãªåé¡ã¯ãä»ã®äººãåãããã«ãç¹å¥ãªã³ãã±ãŒã·ã§ã³ã«ããéçãçŽæ¥äº€ææã«çœ®ããããã«å€§ããªãéãæããªããã°ãªããªãããšã§ãã ãããŠãããã§ã¢ãã¿ãŒã¯ããªããæãããšã¯ãããŸããã HFTã¯éåžžã«ããããªããžãã¹ã§ãã äœé 延ã®ãããžã§ã¯ããããã€ããããŸããããããŸããŸãªçç±ã§ããŸããããŸããã§ããã ãã®1ã€ã¯ãäœé 延ã«é¢äžããå šå¡ã瀟å ã§ãã¹ãŠã®ããšãããããšããŠããããšã§ãã ãããŠãç§ãã¡ã¯ååŒãããããœãããŠã§ã¢ãäœæããŸãã
ãããŠãã¹ã±ãŒã«ã®éãã¯äœã§ãããšå°ããŸããã ããããã®ããã«ã倧èŠæš¡ãªååŒã·ã¹ãã ã¯å°ãªããšã100äžãã«ã®ãããžã§ã¯ãã§ãã ããªããç§ãã¡ã®æ倧ã®ãããŒã«ãŒãèŠãŠãã圌ã¯å®¢èŠ³çãªçç±ã§ãã®ãéã䜿ãäœè£ããããŸããã圌ãã¯ãããªã«ãéã皌ãæ¹æ³ããªãããã§ãã ãããã®ãã¬ãŒããŒã¯ãã·ã¢äžã«äœäžäººãããŸãã
ãã¹ãŠã®ãããŒã«ãŒã¯ã³ããã·ã§ã³ã§çšŒããŸãã ãããŒã«ãŒã«ã¯ãæŽç·ŽããããœãããŠã§ã¢ã®éçºã«æè³ããã ãã®ãéããããŸããã
ã¢ã¡ãªã«ã§ã¯-ãŸã£ããç°ãªãèŠæš¡ã ãããŒã«ãŒã«ã¯æ°ååãã«ã®é éãæã€é¡§å®¢ãäœçŸäžäººãããããããŒã«ãŒã¯ãããã®é éã®å²åãšååŒããã®ææ°æã®äž¡æ¹ã§çšŒãã§ããŸãã ãããŠããã«ãããæ倧ã®ã¢ã¡ãªã«ã®ãããŒã«ãŒã¯æ¬åœã«ã¯ãŒã«ãªã·ã¹ãã ã®äœæã«æè³ããããšãã§ããŸãã
ãã«ãã¹ã¬ããã©ã
-2000幎代åé ãããªãã¯ãã¹ãŠãããŸããã ãããŠãäŒç€Ÿããã§ã«å€§ããæé·ããä»ãããªãã¯äœãããŠããŸããïŒ ãšããã§ãããªãã¯äœäººããŸããïŒ
ã400人以äžãã ã³ãŒãã£ã³ã°ã倧奜ããªã®ã§ãã³ãŒãã®äœæãå«ãããã¹ãŠãç¶ããŠããŸãã ãããã£ãŠãç§ã¯é¢çœããã®ãæžãåã³ã決ããŠåŠå®ããŸããã ããããããã ãã§ã¯ãããŸããã , , dxLab. , .
â . . , , , , . - , . - , Fulltime-, , . , , .
â ?
â dxLab , . â . , , , â . , , â , â high concurrent, . , , .
-, . , , , -? , .
, . - . . , , 50 . , , , , .
, Performance- . . - , , .
â ? .
â â . HashMap « » . , Garbage Collection, . HashMap-. , « â » . HashMap-, . ! ! , .
â , CAS- , .
â , . â . . , , GC CPU . , , . . , , , , .
, . ? - HTTP-. çŽ æŽãããã - HTTP-. .
, . â , â . , . -, . , , , . , ? , , .
â ? - , .
â , . .
Concurrency,
â , Concurrency, , . . ?
â . , , â . , . . - .
â ?
â . , , , , . . ? , - . , - , , , , , . , - .
â . Java oncurrency, - . , , , , Memory Model. Java 5 (JSR 133). , . concurrency-interest hotspot-dev?
â , . , . , - , .
â , , ?
â . - . , , â . , - , . , - . Wait-free synchronization , , , : «, , CAS . .» ? , , , .
, , - â Software Transactional Memory (STM). Software Hardware, . , , , . â .
, Hardware Transaction Memory (HTM), Haswell, , Intel . , HTM-. â . , , .
â JVM .
â , , . , JVM HTM, , HTM . , : «, , ». ! high level low level . Atomic, . â ! , , .
HTM â . , -. , «synchronized». synchronized - . , , - , , CAS- .
. «synchronized» â «atomic», , , . , . - , . , HTM, xbegin â « ». CPU CPU, , . : , , , ? , - .
, overhead â . , overhead , CAS- . . xbegin, xcommit, : , . , , .
, . -, . -, â , .
, , . , , lock . . , JVM â lock- , overhead .
, . , Skylake. Haswell .
â , hotspot-dev ? , Java ?
â hotspot-dev â , , JVM, Oracle .
â , .
â : , , .
challenge Devexperts
â , , , . ?
â â scale. , , . , . : , , , , . â . , . scale , . - .
, . , â , . : «. , , ». custom- , custom- â âŠ
â ?
â , . .
â ?
-ã¯ãã , : - , -, - â , .
â ?
â , . , , ! â . â . â . â . .
â ?
â . , . , . , : , . . â , , . , . , . . , .
â , .
-ã¯ãã
-èããŠãã ãããç§ãã¡ã¯é·ãé話ããŠããŸãããããäžã€è©±ããŸãããã ç§ãééã£ãŠããå Žåãããªãã¯ãšãŒãããããã°ã©ãã³ã°ã³ã³ãã¹ãã®ãã£ã¬ã¯ã¿ãŒã§ããããŸããïŒ
ãããã§ããªããã ç§ã¯ãåæ±ãšãŒãããå°åACM-ICPCã®å¯©æ»å§å¡é·ã§ãã
-ãããã¯æãæåãªããã°ã©ãã³ã°ãªãªã³ããã¯ã§ããïŒ
-ã¯ããåœé倧åŠããã°ã©ãã³ã°ã³ã³ãã¹ããšåŒã°ãããåŠçã®ããã®æ倧çŽã®åéãªãªã³ããã¯ããããŸãã ãããã¯ãããã®ããã°ã©ããŒã®æ倧ã®ã³ãã¥ããã£ã§ããACMãå®æœããŠããŸããACMã¯ãæ¯å¹Žæåãªãã¥ãŒãªã³ã°è³ãå šå¡ã«èŽãããšã§ãç¥ãããŠããŸãã ããŒãã«è³ã®ãããªãã®ã§ãããããã°ã©ããŒåãã§ãã ã©ã³ããŒããšä»ã®å倧ãªäººã ã®äž¡æ¹ããã®è³ã®åè³è ã§ãã ãã®ãããACMã®åŸæŽã®äžãæ倧ãã€æãæš©åšã®ããããã°ã©ãã³ã°ã³ã³ãã¹ããéå¬ãããŸã-ICPCã
-ç§ãã¡ã¯å®æçã«ã©ããèŠãŠããŸãã...
-ã¯ãã Tuzikå ç±ãããã®ããã«ãçåŸãå®æçã«å šå¡ãåŒãè£ãå Žæã
-ãããŠãããã§äœãããŠããŸããïŒ
-ICPCã¯ãäžçäžã®æ°åã®å°åã§éå¬ãããã°ããŒãã«ãªç«¶äºã§ãã ãŸããç¬èªã®å°åãŸãŒã³ããããŸãã åæ±ãšãŒãããå°åïŒNEERCïŒãšåŒã°ããŸãã ãã·ã¢ãã«ã¶ãã¹ã¿ã³ããŠãºããã¹ã¿ã³ããã©ã«ãŒã·ããã«ãè«žåœãå«ãŸããŸãã ããã«ãã·ã¹ãã ã¯éåžžã«æ°äž»çã§ãã ããŒã ãä»ã®å Žæã«åå ãããå Žåãå¥ã®ãŸãŒã³ãèŠæ±ããæš©å©ããããŸãã 倧åŠã¯ç«¶äºããŸããããã¯éèŠãªãã€ã³ãã§ãã ç¹å®ã®äººã§ã¯ãããŸãããã倧åŠã¯ã³ãã³ããéä¿¡ããŸãã
-決åã§ã¯ã倧åŠã®ããŒã ã¯1ã€ããååšã§ããªããšããã«ãŒã«ããããŸãã
-ã¯ãã æçµçã«ã¯ã倧åŠã®ããŒã ã¯1ã€ã ãã§ãã æåŸã®1人ã¯2å以äžåå ã§ããŸããã ãã¹ãŠãéåžžã«å³æ Œã«è¡ãããŠãããããããæèã¯ãããŸããã
ã€ãã³ãã®èŠæš¡ã¯å·šå€§ã§ãã äžçäžã§ãã»ãŒ100ãåœããæ°åäžäººããã®éžæã«åå ããŠããŸãã åæ±ãšãŒãããã®ãŸãŒã³ã ãã§ãããã«ãã¬ãã«ã·ã¹ãã ã«åŸã£ãŠæ°åã®ããŒã ããéžæãã決åã«è¡ãåäŸãã¡ãéžæããŸãã

-éžæã¯ã©ã®ããã«é 眮ãããŸãã-æšæºåãããŠããŸããïŒ ãŸãã¯ãå°åã®è£éã§ïŒ
-äžè¬çãªã«ãŒã«ãããã詳现ã¯å°åã®è£éã§ãã
ããããã®è©³çŽ°ãéçºããŸãããïŒã
-ã¯ãã å®éãç§ã¯åµæ¥è ã®äžäººã§ããã ç§ã¯ãŸã æåã®ã³ã³ãã¹ãã«åå ããŸããã
-ãããŠããããã®ç«¶æäŒã¯ã©ããããéå¬ãããŸãããïŒ
-ICPCèªäœã¯77幎ç®ããéå¬ãããŠããŸãã ç§ã¯96幎以æ¥ããã«ããŸããã ç§ãåããŠåå ãããšãããŸã å°åããããŸããã§ããããããŠãç§ãã¡ã¯è¿é£ã®å°åã«åå ãã«è¡ããŸããã 圌ãã¯æçŽãæžããå°ããç§ãã¡ãé£ããŠè¡ã£ãã ç§ãã¡ã¯ã¹ããã¯ãã«ã ã«è¡ããããã§1äœã«ãªããŸãããå°å ã®äººã ã¯æ±ºåæŠã®ãã±ããããã¹ãŠå¥ªãããŸããã ãããŠã圌ãã¯ïŒããããã©ã®ããã«ïŒã ãããŠãã¹ããã¯ãã«ã ã®æ±ºåæŠã®ãã£ã¬ã¯ã¿ãŒã¯ãç¬èªã®è§£æ±ºçãèŠã€ããŸããããšåœŒã¯èšããŸãã ãã®åŸãAll-Union Computer Science Olympiadsã®åè ã§ããAnton Sukhanovããããè¡ã£ãŠããŸããã 圌ã¯ãã®å°åã倧ããªåœãçµç¹ããŸããã
-ãããŠãããªãã¯ãããã20æ³ã§ãããïŒ
-ãã®æåã®ç«¶æäžãç§ã¯2幎ç®ã«ããã ãããŠãç§ã®ããŒã ã¯ãã·ã¢ã®æåã®ãã£ã³ããªã³ã«ãªããŸãããç§ãã¡ã¯å°åã§1äœã«ãªãã決åã«é²ã¿ãŸããã 決åæŠã§ã¯ã圌ãã¯ããŸãæ瞟ãè¯ããããŸããã§ãããäžã§ã¯ãªããäžã§ããããŸããã§ããã ãããŠã次ã®å°åã§ã¯ã決åæŠã«ãã§ã«2ååå ããŠããã®ã§ãåå ããããšãã§ããªããªããŸããããã®ãããç§ã¯ãã®å šäœã®äž»å¬è ã«ãªããŸããã ãã®åŸãSukhanovã¯Microsoftã§ã®å€åãèŸãããã¹ãŠãç§ã«ä»»ããŸããã ãã以æ¥ãç§ã¯ããããã£ãŠããŸãã
-ã€ãŸãããã20幎ã§ããïŒ
-ã¯ãã ãžã¥ããªãŒã®æºæ±ºåã20çªã«ãªããŸããã ãããŠãç§ã¯19幎éãããçµç¹ããŠããŸããã ICPCã®æåã®æ°å¹Žéã¯ãã²ã©ããã®ã§ããã ããã¯ã¢ããã³ã宮殿ã§èµ·ãã£ããç§ã¯æ°æ¥éããã«å€ãéãããå®éã«ããã«äœãã§ããã
çŸåšãçµç¹å§å¡äŒã®çŽ æŽããã倧ããªããŒã ãå€ãã®äººã ãããŸãã ããããã«ç¬èªã®æ¹åæ§ããããŸãã ç§ã¯å¯©æ»å§å¡é·ã§ãããç§ã®ä»äºã¯ä»äºãéžã¶ããšã§ãã ãããŠãç§ã¯ãã¹ãŠãèªåã§çºæããã®ã§ã¯ãªããã¢ã€ãã¢ãéããäžç·ã«éãŸããã©ã®ã¿ã¹ã¯ãæé©ããå€æãããããã«åãçµãçŽ æŽãããååãããŸãã 次ã«ãæçµæ ¡æ£ãè¡ããŸããããããã¹ãŠã§ãã
éå»æ°å¹Žã«ãããããµã³ã¯ãããã«ãã«ã¯ã§ITMOããŒã¹ã®ã³ã³ãã¹ããéå¬ããŠããŸããã ããããç§ãã¡ã®åœã¯å€§ããã®ã§ããµã³ã¯ãããã«ãã«ã¯ãšãã«ããŠã«ã§åæã«ç«¶æäŒãéå¬ããªããã°ãªããŸããã§ããããªããªãããã·ã¢ã®ãã®å°åã®åŠçã¯ãåã«ãµã³ã¯ãããã«ãã«ã¯ã«é£ã¶ãéããªãã£ãããšãããã£ãããã§ãã æåã¯2ã€ã§ããããçŸåšã¯4ã€ã®å Žæã§åæã«éãããŠããŸãã ãã®æ±ºå®ã¯ã人ã ãåå ã§ããããã«çµæžçãªçç±ã§è¡ãããŸããã æè¿ã®ç«¶æäŒã¯ããµã³ã¯ãããã«ãã«ã¯ããã«ããŠã«ãã¿ã·ã±ã³ãããããªã·ã§éå¬ãããŸããã ç§ãã¡ã¯ã人ã ãåå ã§ããããã«ããªãªã³ãã¢ãŒãã人ã ã«å±ããããšããŸãã ãããŠã人ã ã¯æ±ºåã«è¡ããŸãã
-ãããŠãç§ãã¡ã®å°åããããã€ã®ããŒã ã決åã«è¡ããŸããïŒ
ãéåžžã¯10ãå°ãè¶ ããŠããŸããã ä»å¹Žãç§ã®æèŠã§ã¯ã13ãŸãã¯14ã§ãã
-ãããŠæåŸã«ããã¹ãŠã¯ãããã§ããïŒ
-æçµçã«ã¯ã120ã125ããŒã ã
-ããã¯ç§ãã¡ã®å°åãäžçã«ãããã¹ãŠã®çŽ10åã®1ã§ããããšãå€æããŸãããïŒ
-ã¯ãã ç§ãã¡ã®å°åã¯åºãã§ãã ãããŠãç§ãã¡ã¯æŽå²çã«ããŸãæ©èœããŠããŸãã
-ãã®ãªãªã³ãã¢ãŒãã®å šäžçã®æ±ºåãåãå ¥ããŸãããïŒ
-ã¯ãã 2幎åã ç§ã¯ãã®ãã£ããŒã¬ã®ãã£ã¬ã¯ã¿ãŒã§ããã
-ããã¯ããªãã®ããŒã ãåã£ãããã§ããïŒ
-ç§ãã¡ã¯ãããé·ãéãã£ãŠããããåã£ãããã§ãã å€ãã®èŠå ããããŸããã ãªãªã³ããã¯ã·ã¹ãã ã®ãããªãã®ã§ããæ¯å¹Žæ±ºåæŠã¯ããŸããŸãªå Žæã§éå¬ãããŸãã æçµéä¿¡ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããåžæããããŸããŸãªåœã ãŸããããæç¹ã§ãªã¯ãšã¹ããéä¿¡ããŸããã ãããçŽæ¥ç§ãã¡ã®ã¢ã€ãã¢ã ã£ãããã§ã¯ãããŸããã ããããããã¯ã³ã³ããã£ã·ã§ã³éšéã®ã¢ã€ãã¢ã§ããïŒãã¿ããªæ¥ãŠããã·ã¢ã«ã¯ããªãã£ãããããªãã¯ãããé·ãéãã£ãŠããŠã決åæŠãããªãã®å Žæã§éãããŠãã ç§ãã¡ã¯åæ°ãæšãŠãŠã財æ¿ãèŠã€ããŸããã ãããŠã圌ãã¯ãªã¯ãšã¹ããéä¿¡ããŸããã ãããŠåœŒãã¯èªå® ã§ãã£ããŒã¬ãéå¬ããŸããã ãã®ãããçµéšã§ããã
-ç§ã®æèŠã§ã¯ãããªãã¯ãžã¥ããªãŒã§éãããŸãããïŒ
-ã¯ãã ãã¡ã€ãã«èªäœã¯ãŠãã¬ã€ããŒã§è¡ãããŸããã ç§Theã¯ããã¡ã€ãã«ãéå¬ãããã¹ãŠã®åå è ãé 眮ããå¿ èŠããããšããããšã§ãã åå è ã¯ãèªèº«ã®è²»çšã§æ±ºåã«é£ã¶ã®ã§ãå®å šã«æäŸããå¿ èŠããããŸãã èœã¡çããŠãé£ã¹ãŠã楜ããŸããã ãã«ããŒãã
-ãããŠäœäººãæ¥ãŸããïŒ 120ããŒã ãåããŒã ããããã6人ïŒ
-3人ãšã³ãŒãã å°ãªããšã4ã€ã
-ã¹ãã¢ããããããã以äžïŒ
-äºåã®ãã®ã¯ãããŸããã ãéãç¯çŽããããã ãã«ãã£ã³ã»ã«ãããŸããã 圌ãã¯ãäºåã®ããŒã ãåŒã£åŒµã代ããã«ãããå€ãã®ããŒã ãæåŸ ããæ¹ãè¯ããšå€æããŸããã ãããã£ãŠãããŒã ã¯æ£åŒã«-4人ã ãã®çµæãçŽ1200人ãã©ããã«æ¥ãŸããã ããã¯ãã¹ã®ã¹ããªã³ã°ã§ãã ãã¹ãŠãå€ã§ããã ç§ãã¡ã¯çãã€ãµããšãã¹ããŒã«èœã¡çããŸããã
-ããã¯çœãå€ãšãã§ãã ããã«ã¯ãããªã«å¿ èŠã§ããïŒ
-ã¢ã¹ããªã¢ãããã宮殿-ãã¹ãŠãäžå¿ã«ãããŸãã
-ããã¯å®éã«ã¯ããããã®ãéã§ãã 誰ãããã«è³éãæäŸããŸãããïŒ
-ããã¯é£éŠæ¿åºã®å©æéã§ããã
-ã€ãŸããããªãã¯æ¿åºãŸãã¯æè²çã«æ¥ãŠããã¿ããªããããç©èªã ããšèšã£ãã®ã§ããïŒ
-åºæ¬çã«ã¯ã¯ãã ITMOãšãã®åŠé·ãŽã¡ã·ãªãšãã®å€§ããªã¡ãªããã¯ã圌ãäžè¬æè²ã®çºå±ã®ããã«å€§èŠæš¡ãªæè²å©æéãç²åŸããããšã§ãã ããã¯ãã®ãªãªã³ãã¢ãŒãã®ç¬ç«ããå©æéã§ã¯ãªããäžè¬çã«æè²ã·ã¹ãã ãäœæããããã°ã©ããŒã®æè²ãæ¯æŽãããšããéåžžã«å€§ããªå©æéã§ããã ãããŠããã®å©æéã®äžéšã¯ICPCãã¡ã€ãã«ã§ããã
-ã€ãŸããè³éãæäŸãããã®ã§ãããããªãã¯ããã§è¡ãšäº€æµããŸããã§ãããïŒ
-ç§ãã¡ã¯ãèŠå¯ããã¹ãŠãåè¡ãããã¹ãäœãããã«ãå€éšããã®æ¯æŽã®åé¡ã«ã€ããŠåžãšäº€æµããŸããã åžå ã®åºåã
-ãããŠããªãåºåãªã®ãïŒ
-ãããŠãããªãã¯ç¥ã£ãŠãããéœåžèªäœã瀺åããã åžã«ã¯ãœãŒã·ã£ã«åºåã¹ãããããããŸãã ãããŠãåžã¯ããã«åå ããæ¯æŽããæ¯æŽããŠããããããããã§ããã€ãã®å Žæãããªãã«å²ãåœãŠãŠããŸãããšèšãããŸããã ããããšãšãã«ãåºåã¬ã€ã¢ãŠããéçºããŸããã ãããŠåœŒå¥³ã¯ããã§çµéŠåã«ãªããŸããã ã€ãã³ãã«æ¥ãŠãããŠããããã§ããåºåãã¶ãäžãã£ãŠããŸãã
ãããŠãããã¯æ¬åœã«çŽ æŽãããã€ãã³ãã§ãã ããã¯ãäžçã§æãæš©åšã®ããããã°ã©ãã³ã°ç«¶äºã§ãã ã€ãŸãããããç§ãã¡ã®è¡ã«æ¥ããšããäºå®ã¯æ¬åœã«çŽ æŽãããã§ãã ããã¯å€§ããªææã§ãã
åç §è³æ
- ããã³è¬æŒãå®è·µçãªããã°ã©ããŒã®ããã®äžŠåããã°ã©ãã³ã°ã®çè«ã
- ããŒãã«ããè¬æŒãPure Javaã§ã®1ç§ãããã®æ°çŸäžã®åŒçšã
- JPoint 2016ã§ã® Roman Elizarovã«ããå ±å
- ãã®ä»ã®åé¡Youtubeã§ã¹ã©ã€ããªã