̽ÌÖSwooleг̵÷ÀíÆ÷µÄÔËÐÐÔÀí
swooleÊÇÒ»¸ö»ùÓÚphpÓïÑÔ¿ª·¢µÄ¸ßÐÔÄÜÍøÂçͨѶ¿ò¼Ü£¬Äܹ»ÌṩÒì²½¡¢Ð³Ì¡¢²¢·¢µÈ¶àÖÖ±à³Ì·½·¨£¬Ê¹µÃ¿ª·¢Õß¿ÉÒÔÔ½·¢¸ßЧµØ±àдÍøÂçÓ¦ÓóÌÐò¡£
ÔÚSwooleÖУ¬Ð³Ìµ÷ÀíÆ÷ÊÇÆä½¹µã×é¼þÖ®Ò»£¬ËüÈÏÕæг̵Ľ¨Éè¡¢µ÷ÀíºÍ½ÓÄɵÈÊÂÇ飬ÊÇSwooleʵÏÖ¸ßÐÔÄܵÄÒªº¦Ö®Ò»¡£
ÄÇô£¬Swooleг̵÷ÀíÆ÷ÊÇÔõÑùÊÂÇéµÄÄØ£¿ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«ÉîÈë̽ÌÖSwooleг̵÷ÀíÆ÷µÄÔËÐÐÔÀí¡£
Ò»¡¢Ð³Ì
ÔÚÉîÈëÏàʶSwooleг̵÷ÀíÆ÷֮ǰ£¬ÎÒÃÇÏÈÀ´ÏàʶһÏÂʲôÊÇг̡£
гÌÊÇÒ»ÖÖÇáÁ¿¼¶µÄỊ̈߳¬ÓëÀú³ÌºÍÏß³ÌÏà±È£¬Ëü¾ßÓÐÒÔϼ¸¸öÌص㣺
1.г̵ÄÇл»²»ÒÀÀµÓÚÄںˣ¬²»ÐèÒªÉÏÏÂÎÄÇл»µÄ¿ªÏú£¬Çл»ËÙÂʷdz£¿ì¡£
2.г̵ÄÄÚ´æÏûºÄ±ÈÏ̺߳ÍÀú³Ì¸üС£¬Í³Ò»Ê±¼äÄÚ¿ÉÒÔ½¨Éè¸ü¶àµÄг̡£
3.ÔÚÒì²½I/OÄ£×ÓÖУ¬Ð³Ì¸üÊÊÓÃÓÚIO÷缯Ð͵ÄÓ¦Óó¡¾°£¬ÄܸüºÃµØÊ©Õ¹×ÊÔ´µÄʹÓÃЧÂÊ¡£
4.гÌÊÇ·ÇÇÀռʽµÄ£¬Í³Ò»Ê±¼äÖ»ÄÜÓÐÒ»¸öгÌÔËÐУ¬Ò»µ©Ð³ÌÖ´ÐÐÁËIO²Ù×÷»ò×Ô¶¯Èóö¿ØÖÆȨ£¬¾Í»áÇл»µ½ÆäËûгÌÖ´ÐС£
ÔÚPHPÓïÑÔÖеÄг̣¬Í¨³£ÐèҪʹÓõ½yieldÒªº¦×Ö£¬ÌåÏÖгÌÍËÈã¬Èóö¿ØÖÆȨ£¬ÆÚ´ýÆäËûг̵ÄÖ´ÐлòÕßIOÊÂÎñµÄ´¥·¢¡£
¶þ¡¢Ð³Ìµ÷ÀíÆ÷
Swooleг̵÷ÀíÆ÷ÊÇÒ»¸öÂÌÉ«Ị̈߳¬ÔËÐÐÓÚÓû§Ì¬£¬¿ÉÒÔͨ¹ýºÜÊǸßЧµØÇл»Ð³ÌºÍµ÷ÀíÏß³Ì×ÊÔ´À´ÊµÏÖ¶àʹÃüµ÷ÀíºÍ¸ßÐÔÄܵÄÍøÂçÓ¦ÓóÌÐò¡£
г̵÷ÀíÆ÷ÿ´ÎÖ´Ðж¼»á½¨ÉèÒ»¸öгÌÕ»£¨coroutine_stack£©£¬²¢ÇÒ»á°ÑÉÏÏÂÎÄ£¨context£©ÉúÑĵ½¸ÃгÌÕ»ÖУ¬±È¼°¸ÃгÌÐèÒª»Ö¸´Ö´ÐÐʱÔÙÖØмÓÔØÉÏÏÂÎÄ¡£
г̵÷ÀíÆ÷µÄµ÷Àí·½·¨ÊÇ·ÇÇÀռʽµÄ£¬Ö»ÓпÉÒÔÇл»µ½ÆäËûгÌÖ´ÐÐʱ£¬Ä¿½ñг̲Żá×Ô¶¯Èóö¿ØÖÆȨ£¬µ÷ÀíÆ÷²Å»á¾ÙÐÐгÌÇл»²Ù×÷¡£
ÐèҪעÖصÄÊÇ£¬SwooleµÄг̵÷ÀíÆ÷ÊÇͨ¹ýг̰ü¹üÁ˵ײãÍøÂçIO£¬À´µÖ´ïгÌÇл»µÄЧ¹û£¬¶ø·ÇÕæÕýÒâÒåÉϵĶàÏ̡߳£SwooleÔڵײãʹÓÃEpoll»òÕßKqueueÀ´¾ÙÐÐÊÂÎñÂÖѯºÍIO¸´Óã¬ÅäºÏг̵ÄÇл»»úÖÆ£¬¼«´óµØÌáÉýÁËI/O÷缯ÐÍÍøÂçÓ¦ÓõÄÐÔÄÜ¡£
Èý¡¢ÔËÐÐÔÀí
Swooleг̵÷ÀíÆ÷µÄÔËÐÐÔÀí¿ÉÒÔ·ÖΪÈý¸ö°ì·¨£ºÐ³Ì½¨É衢гÌÇл»ºÍг̽ÓÄÉ¡£
1.г̽¨ÉèÀú³Ì
µ±Swoole³ÌÐò×îÏÈÖ´ÐÐʱ£¬Ð³Ìµ÷ÀíÆ÷Ò²×îÏÈÊÂÇéÁË¡£µ±Ð³Ì±»½¨Éèʱ£¬Ð³Ìµ÷Àí»áÏÈ·ÖÅÉÒ»¸öcoroutine_id£¬ÓÃÀ´ÌåÏÖ¸Ãг̵ÄID£¬È»ºó»á¿ª·¢Ò»¿é¿Õ¼ä´æ´¢Ð³ÌµÄÉÏÏÂÎÄÐÅÏ¢£¬°üÀ¨Ä¿½ñÖ´ÐеÄÎļþ¡¢Ä¿½ñÐкŵȣ¬È»ºó½«Õâ¸öÉÏÏÂÎÄÐÅÏ¢ÉúÑĵ½Ò»¸öcoroutine_stackµÄÊý¾Ý½á¹¹ÖС£
2.гÌÇл»Àú³Ì
г̵÷ÀíÆ÷ÈÏÕæÔÚ¶à¸öгÌÖ®¼ä¾ÙÐÐÇл»£¬Ò»µ©Ò»¸öг̱»¼¤»î»òÕßÐèÒªÆÚ´ýÆäËûÊÂÎñ£¬Ð³Ìµ÷ÀíÆ÷¾Í»áÇл»µ½ÁíÍâÒ»¸öгÌÖ´ÐУ¬Õâ¸öÇл»Àú³ÌòËƺÜÊÇ·±Ëö£¬×ÅʵSwooleг̵÷ÀíÆ÷ÒѾÓÅ»¯¹ýÁË£¬Ö»ÐèÒª°ÑÉÏÏÂÎÄ(context)ÉúÑĵ½Ä¿½ñÔËÐÐÕ»ÖУ¬È»ºó´ÓÁíÍâÒ»¸öг̵ÄÔËÐÐÕ»ÖмÓÔظÃÉÏÏÂÎÄ£¬¾Í¿ÉÒÔ¾ÙÐÐгÌÇл»ÁË¡£
3.г̽ÓÄÉÀú³Ì
гÌÔËÐп¢Êºó£¬ÐèҪʵʱµØÊÍ·ÅÄڴ棬г̵÷ÀíÆ÷µÄ½ÓÄÉ´¦ÀíÊÇͨ¹ý¼ì²âгÌÕ»µÄʹÓÃÇéÐΣ¬ÈôÊǸÃгÌÕ»ÖеÄÄÚÔÚûÓб»Õ¼Ó㬾ÍÅú×¢¸Ãг̿ÉÒÔ±»½ÓÄÉÁË¡£½ÓÄÉʱ£¬»áÏÈ´Óг̵÷ÀíÆ÷ÖÐÒƳý¸Ãг̵ÄÉÏÏÂÎÄ(context)£¬È»ºóÏú»Ù¸ÃгÌÕ»ÖеÄÄڴ棬ÊͷŵײãÎļþÐÎò·ûµÈ×ÊÔ´¡£
ËÄ¡¢×ܽá
±¾ÎÄÏÈÈÝÁËSwooleг̵÷ÀíÆ÷µÄÔËÐÐÔÀí£¬ÆäÖаüÀ¨Ð³Ì½¨É衢гÌÇл»ºÍг̽ÓÄÉÈý¸ö·½Ã档ͨ¹ýÉîÈëÏàʶSwooleг̵÷ÀíÆ÷µÄÊÂÇéÔÀí£¬²»µ«¿ÉÒÔ¸üºÃµØÃ÷È·Swoole¿ò¼ÜµÄÒì²½¡¢Ð³Ì¡¢ÊÂÎñµÈ»úÖÆ£¬»¹¿ÉÒÔÔÚÏÖʵ¿ª·¢ÖÐÔ½·¢¸ßЧµØʹÓÃSwoole£¬ÌáÉýÓ¦ÓóÌÐòµÄÐÔÄÜ¡£
ÒÔÉϾÍÊÇ̽ÌÖSwooleг̵÷ÀíÆ÷µÄÔËÐÐÔÀíµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡