A thread is a *long-lived* independent running part which is *initiated by the main program*, for example receiving traffic from a network device and once it has received enough, inform the main program that the data is there.
An asynchronous operation is a *short-lived* independent running *stub part* which can be initiated by anything, for example the writing of analysed data to disk.
Now it is fair to say that asynchronous operations are threads also and could be implemented as threads by the coder too and that is 100% true. It is just that their purpose is different (Long lived versus long lived) and where they are started (main program versus at the end of some process).
Latest Answers