Tasks are a feature similar to coroutines in other languages. They help us to suspend an operation and resume when required.
In normal sequential code, when we call a function, let's say f1, and then call function f2, it's understood that f2 will start when the f1 function ends. But, in this whole operation, we do not have any control over the function once it has started to execute itself. A task in Julia is different, as it allows itself to be interrupted while getting executed!
Julia provides a function named task() to create any function as a task (also known as a coroutine). This makes the function behave differently from usual. However, the whole process is very different from a function call. There are two main reasons for this:
- At the time when we want to interrupt and resume a task, there is no space...