As far as I understand:
Programming to leverage multicores or multiple processors is called
parallel programming.
But what about If I don’t have >1 cores ?
Does a command like:
"abcdef".AsParallel().Select(c=>char.ToUpper(c)).ToArray()
will be running sequentially ?
(I know that even if I have >1 cores , Plinq optimization still can choose not to parallel. But My question is about having ==1 cores.)
Or
It still can be in multiple threads (1 core) like :

(but IMHO it wont be parallel programming)
I’m a bit confused.any Help will be much appreciated.
PLinq will default the allowed degree of parallelism to
Math.Min(ProcessorCount, MAX_SUPPORTED_DOP) where MAX_SUPPORTED_DOP is
64 for .NET 4.0 and 512 for .NET 4.6
You may explicitly raise the max concurrency limit beyond that (or lower it below that), and that leaves PLinq the freedom to use from 1 to <limit> threads to do your work. Usually raising the defaults is only useful if your work is heavily I/O bound.
In other words, unless you change the default concurrency limits using for example WithDegreeOfParallelism, your tasks will run using a single thread on a single core.