Asynchrony, in
computer programming
Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as anal ...
, refers to the occurrence of events independent of the main
program flow and ways to deal with such events. These may be "outside" events such as the arrival of
signals, or actions instigated by a program that take place
concurrently with program execution, without the program
blocking to wait for results.
Asynchronous input/output is an example of the latter case of asynchrony, and lets programs issue commands to storage or network devices that service these requests while the
processor continues executing the program. Doing so provides a degree of
parallelism.
A common way for dealing with asynchrony in a
programming interface is to provide
subroutines that return a
future or promise that represents the ongoing operation, and a synchronizing operation that blocks until the future or promise is completed. Some programming languages, such as
Cilk, have special syntax for expressing an asynchronous procedure call.
Examples of asynchrony include the following:
*
Asynchronous procedure call, a method to run a procedure concurrently, a lightweight alternative to
Threads
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
.
*
Ajax is a set of
client-side web technologies
The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet.
Documents and downloadable media are made available to the network through web se ...
used on the to create asynchronous I/O
web applications.
* Asynchronous method dispatch (AMD), a data communication method used when there is a need for the server side to handle a large number of long lasting client requests.
ICE usage of AMD
Using synchronous method dispatch (SMD), this scenario may turn the server into an unavailable busy state resulting in a connection failure response caused by a network connection request timeout. The servicing of a client request is immediately dispatched to an available thread
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
from a pool of threads and the client is put in a blocking state. Upon the completion of the task, the server is notified by a callback. The server unblocks the client and transmits the response back to the client. In case of thread starvation
Starvation is a severe deficiency in caloric energy intake, below the level needed to maintain an organism's life. It is the most extreme form of malnutrition. In humans, prolonged starvation can cause permanent organ damage and eventually, dea ...
, clients are blocked waiting for threads to become available.
See also
* Asynchronous system
* Asynchronous circuit
References
Computer programming
Inter-process communication
Middleware
{{comp-sci-stub