Content deleted Content added
m Task 18 (cosmetic): eval 16 templates: hyphenate params (23×); |
m Reverted edit by 83.65.213.82 (talk) to last version by GreenC bot |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1:
{{Short description|Software design pattern}}
In [[Thread (computer science)|multithreaded]] [[computer programming]], '''asynchronous method invocation''' ('''AMI'''), also known as '''asynchronous method calls''' or the '''asynchronous pattern''' is a [[software design pattern|design pattern]] in which the call site is not [[Blocking (computing)|blocked]] while waiting for the called code to finish. Instead, the calling thread is notified when the reply arrives. Polling for a reply is an undesired option.
Line 7 ⟶ 8:
In most programming languages a called method is executed synchronously, i.e. in the [[thread (computer science)|thread of execution]] from which it is invoked. If the method takes a long time to complete, e.g. because it is loading data over the internet, the calling thread is blocked until the method has finished. When this is not desired, it is possible to start a "worker thread" and invoke the method from there. In most programming environments this requires many lines of code, especially if care is taken to avoid the overhead that may be caused by creating many threads. AMI solves this problem in that it augments a potentially long-running ("synchronous") object method with an "asynchronous" variant that returns immediately, along with additional methods that make it easy to receive notification of completion, or to wait for completion at a later time.
One common use of AMI is in the [[active object]] design pattern. Alternatives are synchronous method invocation and [[futures and promises|future objects]].<ref name="active object">{{cite journal | last=Lavender | first=R. Greg | author2=Douglas C. Schmidt | title=Active Object | url=http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf | access-date=22 November 2008 | archive-url=https://
An example for an application that may make use of AMI is a web browser that needs to display a web page even before all images are loaded.
|