Background In many applications, there are times we need to perform tasks that take a lot of time to execute. These tasks might include something like: downloading data from an internet source, processing large sets of data, or performing complex computations. To handle such tasks efficiently, we need a way to…