Concurrency: Is it order-independability or interruptibility of tasks? After researching concurrency I am unable to discern if it is either of these specifically or it encapsulates both?

I was also wondering if someone could provide some programming applications/real world examples I am struggling to grasp the concepts entirely and it feels like every where I look people have different understandings.

Just two re-define the two concepts I believe it to be:


Order independent: There is 3 Tasks A, B and C they need to be completed for the application to finalize, and are able to be completed in any order.
Interruptible: Tasks are able to be halted mid processing in order to complete part of one of the other tasks.


Point 2 I am most uncertain about how is this advantageous for a serial application? I am guessing it would be to do with user input/bypassing locks or waits caused by requiring further information so other tasks can be completed.

NOTE: I am trying to apply these in a context outside of parallelism.
Concurrency is working with tasks that may run simultaneously.  In my experience, when this term is used, the main focus is on correctness: making sure a system works as intended.

One way of doing that is to impose additional constraints on the system and ensure that they are always met.  Order independence and interruptability are examples of two such constraints.  You may want them to hold for your concurrent system.   But they are not required properties of concurrent systems in general: for many concurrent systems, they do not hold and do not need to hold.  

For instance, in MySQL, you can configure to what extent you want your transactions to be isolated, with full serializability (order independence) as the highest level.