Functions that use non-blocking I/O operations to allow for other parts of the program to run while waiting for a response.