±¾ÎÄתÔØ×Ô΢ÐŹ«Öںš¸³ÌÐòÐÂÊӽ硹£¬×÷Õ߶þʦÐÖ¡£×ªÔر¾ÎÄÇëÁªÏµ³ÌÐòÐÂÊӽ繫Öںš£
µ±Äã´ò¿ª±¾ÎÄ£¬Ê×ÏÈÏë˵µÄÊÇ£¬ÕâƪÎÄÕ²»½ö½öÊÇÔÚ½²Ò»¸ö֪ʶµã£¬¸üÖØÒªµÄÊÇÔÚ½²Ò»ÖÖѧϰ·½·¨£ºÖÊÒÉÓëÇóÖ¤¡£
Ç°ÑÔ
×î½üÔÚÑо¿Spring BootµÄÒì²½´¦Àí£¬×¼±¸Ð´Ò»ÆªÎÄÕ¡£ÔÚËѼ¯×ÊÁÏʱ·¢ÏÖһƪÎÄÕ¡¶SpringBootÖÐÒì²½ÇëÇóºÍÒì²½µ÷Óá·£¬ÒÔ¼°Ðí¶àËüµÄÑÜÉúÎÄÕ¡£ÎÄÕµÄÈ·²»´í£¬µ«ÎÄÕÂÖÐÌáµ½µÄ“Òì²½ÇëÇóºÍÒì²½µ÷ÓÔÕâÁ½¸ö¸ÅÄһֱ°Ù˼²»µÃÆä½â£¬ÑÜÉúÎÄÕÂÖÐÒ²ÊÇÔÚ»ì×ÅÓá£
ÖÕÓÚÈ̲»×¡Ïë̽¾¿Ò»·¬£¬·¢ÏÖ³ýÁËÄÇƪÎÄÕºÍÑÜÉúµÄÎÄÕÂÖ®Í⣬²¢Ã»ÓÐÆäËûÖ¤¾ÝÀ´Çø±ðÕâÁ½¸ö¸ÅÄî¡£Ö±µ½ÔÚStack OverflowÉÏËѵ½ÁËһƪÆßÄêÇ°µÄÎÄÕ£¬Õâ¸öÒÉ»ó²Å½â¿ª¡£
½ñÌì¾Í´ø´ó¼ÒÒ»Æð̽¾¿Ò»Ï“Òì²½ÇëÇóºÍÒì²½µ÷ÓÔÕâÁ½¸ö¸ÅÄî¡£
Òì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð
ÉÏÃæÌáµ½µÄÎÄÕÂÖÐÓÐÕâÑùÁ½¶Î»°À´½²Òì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð£º
Çø±ðÒ»£ºÒì²½ÇëÇóÓÃÀ´½â¾ö²¢·¢ÇëÇó¶Ô·þÎñÆ÷Ôì³ÉµÄѹÁ¦£¬´Ó¶øÌá¸ß¶ÔÇëÇóµÄÍÌÍÂÁ¿;¶øÒì²½µ÷ÓÃÊÇÓÃÀ´×öһЩ·ÇÖ÷ÏßÁ÷³ÌÇÒ²»ÐèҪʵʱ¼ÆËãºÍÏìÓ¦µÄÈÎÎñ£¬±ÈÈçͬ²½ÈÕÖ¾µ½kafkaÖÐ×öÈÕÖ¾·ÖÎöµÈ¡£
Çø±ð¶þ£ºÒì²½ÇëÇóÊÇ»áÒ»Ö±µÈ´ýresponseÏàÓ¦µÄ£¬ÐèÒª·µ»Ø½á¹û¸ø¿Í»§¶ËµÄ;¶øÒì²½µ÷ÓÃÍùÍù»áÂíÉÏ·µ»Ø¸ø¿Í»§¶ËÏìÓ¦£¬Íê³ÉÕâ´ÎÕû¸öµÄÇëÇó£¬ÖÁÓÚÒì²½µ÷ÓõÄÈÎÎñºǫ́ÔËÐоͿÉÒÔÁË£¬¿Í»§¶Ë²»»á¹ØÐÄ¡£
×ÐϸÔĶÁºÍ·ÖÎöÖ®ºó£¬ÎÄÕÂÖÐÌáµ½µÄÒì²½ÇëÇóÓ¦¸ÃÖ¸µÄÊÇͨ¹ýServletµÄAsyncContext¶ÔÏó»òSpringÖеÄCallable¡¢DeferredResult¡¢WebAsyncTaskµÈ·½Ê½½øÐÐÒµÎñµÄÒì²½´¦Àí¡£¶øÎÄÖÐÒì²½µ÷ÓÃÖ¸µÄÊÇÀàËÆÔÚSpringÖе÷ÓÃ@Async×¢½âµÄÒì²½·½·¨¡£
Äã¿´ÁËÉÏÃæµÄÁ½¸ö¸ÅÄîµÄÇø±ð£¬ÊÇ·ñ¾õµÃºÜÓеÀÀí?¸Ð¾õÒѾ³É¹¦Çø·ÖÁËÒì²½ÇëÇóºÍÒì²½µ÷ÓÃÁËÂð?
ÄÇô£¬ÊÇ·ñÏë¹ýÒ»¸öÎÊÌ⣬ÎÒÃÇͨ³£ËµÇëÇóÒ»¸ö½Ó¿ÚºÍµ÷ÓÃÒ»¸ö½Ó¿ÚʱÄѵÀ²»ÊÇÒ»¸öÒâ˼Âð?ÔõôÔÚÕâÀï¾Í±ä³ÉÁ½¸ö½ØÈ»²»Í¬µÄ¸ÅÄîÁË?
ÒÉÎÊ̽¾¿
´ø×ÅÉÏÃæµÄÒÉÎÊ£¬¿ªÊ¼ÓÃËÑË÷ÒýÇæ½øÐÐËÑË÷¡£·¢ÏÖµ±ËÑË÷“Òì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð”ʱ£¬ËѳöÀ´µÄÄÚÈÝ»ù±¾É϶¼À´×ÔÉÏÊöÎÄÕ¼°ÑÜÉúÎÄÕ£¬»òÕßÊǽ²Òì²½ºÍͬ²½µÄÇø±ð¡£Õâ²¢²»ÄÜ˵Ã÷ʲô£¬µ«Ò²ËµÃ÷ÁËÕâÁ½¸ö¸ÅÄîµÄÇø±ð²¢Ã»Óеõ½ÆÕ±éµÄÈÏ¿É¡£
ÓÚÊÇ¿ªÊ¼³¢ÊÔͨ¹ýÓ¢ÎÄËÑË÷ÒýÇæ½øÐÐËÑË÷¡£ÏÈËÑÁË“the difference between asynchronous call and asynchronous request”£¬Ã»ÓÐÏëÒªµÄ½á¹û£¬´ó¶àÊýÎÄÕ»¹Êǽ²Òì²½ºÍͬ²½µÄÇø±ð¡£
¸Ä±ä¹Ø¼ü×ÖËÑ“the difference between asynchronous call and asynchronous method”£¬½á¹ûÒ»Ñù£¬²¢Ã»ÓÐÏëÒªµÄÎÄÕ¡£µ«È´ËѳöÁËÒ»¸öStack OverflowÉϵĹØÁªÎÊÌâ“Synchronous Vs Asynchronous related to web services”¡£
ÔÚ¸ÃÎÊÌâµÄÏÂÃæ³öÏÖÁËÁ½¸ö´Ê×飺Asynchronous serviceºÍAsynchronous calls¡£ÔÙ×Ðϸ¿´Á½¸ö´Ê×éµÄ½âÊÍ£¬·¢ÏÖÕýÊÇÏëÒªµÄ½á¹û¡£
Òì²½µ÷ÓÃÓëÒì²½·þÎñ
ÆäʵÔÚÓ¢ÎÄËÑË÷µÄ¹ý³ÌÖÐÒѾ·¢ÏÖÁË£¬Ì½ÌÖÒì²½Óëͬ²½µÄÇø±ðʱ£¬¾³£»á³öÏÖasynchronous requestºÍasynchronous callÕâÁ½¸ö´Ê×飬¶øÇÒËüÃǶ¼ÊÇÔÚ½²Òì²½Óëͬ²½µÄÇø±ð£¬¶øûÓн²ËüÃÇÁ½¸öµÄÇø±ð¡£ËùÒÔÎÞÂÛÒì²½µ÷Óû¹ÊÇÒì²½ÇëÇó±¾ÖÊÉÏÊÇÒ»»ØÊ¡£
¶ø¡¶SpringBootÖÐÒì²½ÇëÇóºÍÒì²½µ÷Óá·Ò»ÎÄÖÐËù˵µÄÒì²½ÇëÇóºÍÒì²½µ÷ÓõÄÇø±ð£¬¸ÅÄîÉÏÒ²²¢Ã»ÓÐ˵Çå³þʲôÊÇÒì²½ÇëÇó£¬Ê²Ã´ÊÇÒì²½µ÷Ó᣶øÇÒÖ»ÓÐÄǼ¸ÆªÎÄÕÂÕâô½²£¬ËùÒÔ¿ÉÒÔÈÏΪÒì²½ÇëÇóºÍÒì²½µ÷ÓÃÊÇͬһ¸ö¸ÅÄî(asynchronous call)¡£¶ø×÷ÕßËù½²µÄ“Òì²½µ÷ÓÔָµÄÓ¦¸ÃÒì²½·þÎñ(Asynchronous service)¡£
ΪÁ˽øÒ»²½Ö¤Ã÷ÉÏÃæµÄ½áÂÛ£¬ÏÂÃ潫ÎÊ´ðÖжÔÁ½¸ö¸ÅÄîµÄ½âÊͼòµ¥·Òëһϡ£
Asynchronous serviceºÍAsynchronous calls
Asynchronous service
µ±ÄãµÄweb·þÎñÖ´ÐÐÐèÒªºÄ·Ñ´óÁ¿Ê±¼ä£¬±ÈÈç´ÓÎļþϵͳÖжÁÈ¡Ò»¸ö´óÎļþ¡£´Ëʱ£¬Èç¹ûÄãʹÓÓͬ²½”µÄweb·þÎñ£¬ÄÇô¿Í»§¶Ë±ØÐëµÈ´ý´¦ÀíÍê³É£¬Í¨³£»á×èÈûỊ̈߳¬¶ÔÓڸ߲¢·¢µÄ·þÎñ£¬»á³öÏÖÐÔÄÜÎÊÌâ¡£
Èç¹û½«web·þÎñÉèÖÃΪÒì²½·þÎñ£¬ÄÇô¿ÉÒ԰ѺÄʱ·þÎñίÍиøÁíÍâÒ»¸öỊ̈߳¬»òÕßʹÓ÷Ç×èÈû»úÖÆ£¬ÔÚδÀ´µÄij¿Ì½øÐзµ»Ø¡£»¹ÒÔ¶ÁÈ¡´óÎļþΪÀý£¬¿ÉÒÔʹÓÃÒì²½µÄReadFile·½·¨À´¶ÁÈ¡´óÎļþ¡£ÕâÑù±ãÄܱÜÃâÏß³Ì×èÈû£¬Ìá¸ßÍÌÍÂÁ¿¡£
Asynchronous calls
ÖµµÃ×¢ÒâµÄÊÇ£ºÄã¿ÉÒÔͨ¹ýÒì²½µÄ·½Ê½µ÷ÓÃÒ»¸ö·ÇÒì²½µÄµÄ·þÎñ¡£±ÈÈçÔÚJavaScriptÖеÄAjaxµÄµ÷Óãº
- var jqxhr = $.ajax( "AnyService.svc" )
- .done(function() { alert("success"); })
- .fail(function() { alert("error"); })
- .always(function() { alert("complete"); });
- alert("Called");
Ö´ÐÐÉÏÊöʾÀý£¬Ê×ÏÈչʾ“Called”£¬È»ºóչʾ“success”£¬ÒòΪִÐеĹý³ÌÖв¢²»ÐèÒªµÈµ½·þÎñ·µ»ØµÄ½á¹û¡£¶ø±»µ÷ÓõķþÎñÒ²²»ÐèÒªÊÇÒì²½µÄ¡£
×ÜÖ®£¬·þÎñʵÏÖµÄÒì²½Óëͬ²½ÌØÐÔÍêÈ«¶ÀÁ¢ÓÚ¿Í»§¶Ëµ÷ÓõÄÒì²½ºÍͬ²½ÌØÐÔ¡£Ò²¾ÍÊÇ˵¿Í»§¶Ë¿ÉÒÔÒì²½µÄÈ¥µ÷ÓÃͬ²½·þÎñ£¬¶øÇÒ¿Í»§¶ËÒ²¿ÉÒÔͬ²½µÄÈ¥µ÷ÓÃÒì²½·þÎñ¡£
С½á
ͨ¹ýÉÏÃæµÄ×·×Ù·ÖÎö£¬¹ØÓÚÒì²½ÇëÇóºÍÒì²½µ÷ÓÃÎÒÃÇ¿ÉÒÔÀí½âΪÊÇÒ»»ØÊ£¬Í¬Ê±ÎÒÃÇ»¹µÃÖªÁËËùνµÄ¿Í»§¶ËÒì²½ºÍͬ²½Óë·þÎñµÄÒì²½Óëͬ²½ÊÇÏ໥¶ÀÁ¢µÄ¡£Ò²¾ÍÊÇ¿Í»§¶Ë¿ÉÒÔÒì²½ÇëÇóÒ²¿ÉÒÔͬ²½ÇëÇ󣬷þÎñ¿ÉÒÔÒì²½´¦ÀíÒ²¿ÉÒÔͬ²½´¦Àí¡£Á½Á½×éºÏ¿ÉÒÔÓÐËÄÖÖÇé¿ö¡£
ÁíÍ⣬¸üÖØÒªµÄÊÇÎÒÃÇҪѧ»áͨ¹ýËÑË÷ÖÐÓ¢ÎÄ×ÊÁÏÀ´½â´ð×Ô¼ºÐÄÖеÄÒɻ󣬶øÇÒÓ¢ÎÄ×ÊÁÏÏà¶Ô¸ü׼ȷһЩ£¬ËùÒÔÊ×ÍÆÓ¢ÎÄ¡£ÔÚ̽Ë÷ÒÉ»óÎÊÌâµÄ¹ý³ÌÖÐÍùÍù»¹ÄÜÓв»ÉÙÒâÍâµÄÊÕ»ñ¡£
TOPÔÆ £¨west.cn£©7ÔÂ24ÈÕÏûÏ¢£¬³µÀà ÓòÃû µÄ¼ÛÖµ¿Õ¼äÓÐÄ¿¹²¶Ã£¬ÉÏÖÜÎÒÃDZ¨µÀÁË...
ÔÚPythonÓïÑÔÖÐÓÐÈçÏÂ3ÖÖ·½·¨£º ³ÉÔ±·½·¨ Àà·½·¨(classmethod) ¾²Ì¬·½·¨(staticm...
½üÈÕ£¬ÖйúÐÅϢͨÐÅÑо¿Ôº¹¤Òµ»¥ÁªÍøÓëÎïÁªÍøÑо¿Ëù¸±Ëù³¤À»¨ÊÜÑû³öϯ¡°ÉÂÎ÷...
·ÃÎÊÕßģʽ£¬ÖصãÔÚÓÚ·ÃÎÊÕ߶þ×Ö¡£Ëµµ½·ÃÎÊ£¬ÎÒÃÇÄÔº£Öбض¨»áÏëÆðÐÂÎÅ·Ã̸£¬Á½...
´óÊý¾ÝµÄ¶¨Òå¼°ÌØÕ÷ ´óÊý¾Ý¹ËÃû˼Òå¾ÍÊÇÊýÁ¿¼«ÆäÅÓ´óµÄÊý¾Ý×ÊÁÏ¡£´óÊý¾ÝµÄÒâÒåÔÚ...
ÍøÂçÅäÖà ÉèÖá°ÍøÂ硱£ºÔÚÏÂÀÁбíÖÐÑ¡Ôñ¿ÉÓõÄÐéÄâ˽ÓÐÔÆ¡¢×ÓÍø£¬²¢ÉèÖÃ˽ÓÐIP...
Cookies ÈÃÄãÔÚÍøÒ³Öд洢Óû§ÐÅÏ¢¡£ Ò»¡¢Ê²Ã´ÊÇCookies? CookieÊÇÊý¾Ý£¬´æ´¢ÔÚ...
ÏëÁ˽â¸ü¶àÄÚÈÝ£¬Çë·ÃÎÊ£º 51CTOºÍ»ªÎª¹Ù·½Õ½ÂÔºÏ×÷¹²½¨µÄºèÃɼ¼ÊõÉçÇø https://...
TOPÔÆ £¨west.cn£©9ÔÂ7ÈÕÏûÏ¢£¬±¾ÆÚ DN½»Ò×°ñ£¨8.21-9.3£©ÉÏ£¬Èý×Öĸ ÓòÃû WMP.C...
¶ÔÓÚÄÇЩϣÍûÔÚ2021ÄêÌáÉýÒµÎñ³É¹ûµÄÊ×ϯÐÅÏ¢¹ÙÀ´Ëµ£¬×îÖ÷ÒªµÄÄ¿±êÊÇʵÏÖ»ìºÏÔÆ...