I know the difference between parallelism and concurrency. Concurrency means that the processor is switching between threads at a very fast rate which makes it look like it's running in parallel, so even with a singlecore processor you can achieve things happening at the same time. While parallelism means that each thread is run on a different core.
Does .NET use parallelism or concurreny? What is the flow? Does the cpu check if there are more threads than cores and if thats the case it will result in a core having multiple threads which makes the program parallel and concurrent?
And what happens if I make use of the task parallel library? The name got parallel in it, so is it parallel or the combination of both or?
This subject is not very clear to me, I am constantly in doubt and not sure how all of this works.