I've recently been trying to learn about threading, thread safety and come across the very large term 'asynchronous programming'. It totally threw me into confusion and wondered if anyone could clear up some questions I have about it, as it really has confused me.
Before this, I thought the definition of "asynchronous" was that is wouldn't be occurring at the same time, and the term for occurring at the same time would be "synchronous".
If you google, it says exactly that actually, but now I learn asynchronous programming is all about 2 things happening at once, at least that's what it seems to me.
I've been watching a youtube video series about it all and they explained that asynchronous in programming is all about running multiple things without affecting the main UI thread.
Now, I understand threading, you make a new thread and it gets added to the thread pool, threads are ran depending on the amount of cores on your computer, and they're all run for a very short amount of time, to create the illusion that all threads are running in parallel.
The thing that's tripped me up is asynchronous programming, and now I get told that making a new task is asynchronous programming, does asynchronous programming just mean that your coding on new threads, because as of now the only way 2 operations are running at the same time is when they're running on 2 other threads not including the main thread (UI thread). Now I'm wondering what else makes threads.. is it the fact that it run on its own thread that makes it part of asynchronous programming or am I missing a big chunk of it?
Can anyone clear this up for me?