I read that it is possible to have parallelism without concurrency. Is this correct?
Suppose you have two tasks, A and B, and each require two steps to complete: A1, A2, B1, B2. Also, a process is composed of threads.
Here I how I think of concurrency and parallelism:
Sequential
Time ----->
Thread 1: A1 A2 B1 B2
Concurrent
Time ----->
Thread 1: A1 A2
Thread 2: B1 B2
Parallel (and concurrent)
Time ----->
Thread 1: A1 A2
Thread 2: B1 B2
If this is correct, then it wouldn't be possible to have parallelism without concurrency.
Also, if this model is correct, you could have the following:
Sequential (and concurrent)
Time ----->
Thread 1: A1 B1
Thread 2: A2 B2
This probably wouldn't be a good idea, but it seems conceptually possible.