Single-core
Synchronization: it is a waste of time to execute one thing in sequence and not to do other things while waiting. Also not necessarily. For example, sometimes synchronization is required when resources need to be exclusively occupied, for example, problems frequently encountered by multithreading.
Asynchronous: (asynchronous switching), one thing is waiting to do another thing to spend the wasted time.
Multi-core
Synchronization: meaningless.
Asynchronous:
Parallel: the same task can be executed with two cores at the same time.
Non-parallel: a single task must have a single core.
Multithreading implements or does the following:Single-core; non-exclusive CPU business; asynchronous Switching
Let thread 1 wait for two things:
Let thread 1 sleep;
Let thread 2 do another thing;
Blocking: The thread is suspended for absolute synchronization;
Non-blocking: returns immediately without blocking the thread before the result is obtained immediately.
Multi-threaded applications:
Network applications: inherent concurrency, uncertainty, non-reliability, waiting for Interaction
Embedded applications: lightweight thread switching, fast response.
Process: contains a set of program commands and related resources, and participates in scheduling and competition for resources.
Context switch: each process switch has a process resource protection and recovery action.