Synchronization: Shared resources are called by multiple threads and are synchronized in several ways: (Scenario: Selling train tickets)
1 syncnizerd Keywords
2 Reentrantlock Row It lock
3 volatile keyword modifier variable;
Async: Changing the state of the thread itself, there are several async methods: (Scenario: Producer consumer mode)
1 wait notify, the wake mechanism of Object;
2 await asign; Two methods of Condition objects;
3 Block Queue Bolckqueue, its bottom is still condition;
After JDK 5, for the introduction of the concept of spin, package automic under Java.util.concurrent (automic: Atomic, these objects have CAS operations, what is CAS operation, Compareandset, a synchronization of computer execution) Automicinteger is a spin object for synchronization, similar to Concurrenthashmap for synchronization, and sleep (); This differs from wait notify (); It does not release the lock; in Jdk5, the introduction of a spin lock, similar to implementing a wake-up wait mechanism, query every few seconds, without the virtual machine to wake up, reduce unnecessary overhead
Multi-threaded synchronous and asynchronous way