JUC: 4_ 2. Concurrent collaboration model: producer consumer problem: if false wake-up, prevent false wake-up
How to alternate the communication between threads?
Threads A and B operate on the same variable numbe=0
/**
* How to alternate the communication between threads?
* Threads A and B operate on the same variable numbe=0
* A++
* B--
* <p>
* Question:
* 1.It is safe when there are only two threads, one more + + and one more
*/
...
Added by Erestar on Tue, 08 Mar 2022 02:01:46 +0200
What is communication between threads? How to realize thread communication
2.1 what is thread communication and implementation steps
There are two models of inter thread communication: shared memory and message passingIn fact, thread communication is to realize the alternating work of threads and transmit information
Specific steps of communication between threads: (involving upper, middle and lower parts)
Create a ...
Added by dmarchman on Mon, 07 Mar 2022 05:36:46 +0200
Detailed explanation of Java concurrency conditions
1, Introduction
1. What is a Condition
Any Java Object has a set of monitor methods (defined on java.lang.Object), mainly including wait(), wait(long timeout), notify() and notifyAll() methods. These methods cooperate with the synchronized synchronization keyword to realize the wait / notification mode. The Condition interface also provide ...
Added by MitchEvans on Sat, 05 Mar 2022 06:42:03 +0200
Future mode of JUC package
Future modeFuture pattern is a common design pattern in multithreading development. The core idea is asynchronous call, which makes the problem of serialization parallel and saves time.When a program executes a task, the task may execute very slowly. It cannot return results immediately, but it can return a contract. Therefore, when the task is ...
Added by jdesilva on Fri, 25 Feb 2022 05:22:28 +0200
Analysis of CyclicBarrier source code
1, Introduction
It's best to familiarize yourself with CyclicBarrier before you understand it CountDownLatch The two tool classes can achieve the effect of thread waiting, but their focus is different. CountDownLatch can only be used once. When its counter is 0, it will wake up all waiting threads in the synchronization queue, and then it will ...
Added by mikanmao on Thu, 24 Feb 2022 13:44:24 +0200
A brief analysis of JUC source code Semaphore
Related reading
A brief analysis of JUC source code AbstractQueuedSynchronizerBrief analysis of JUC source code ReentrantLock
brief introduction
Semaphore is an auxiliary class for thread synchronization. It internally maintains the number of threads currently accessing itself and provides a synchronization mechanism; Using Semaphore, you ca ...
Added by the-botman on Sat, 19 Feb 2022 17:13:06 +0200
Difference between ReentranLock and Synchronized
ReentranLock
Lock interface is a built-in attribute, not built-in in java language. It can realize synchronous access ReentranLock is the implementation class of Lock interface After java SE 5, a Lock interface (and related implementation classes) is added to implement the Lock function However, it is used to acquire and release locks expl ...
Added by AtomicRax on Fri, 18 Feb 2022 18:08:16 +0200
XV Thread pool
Advantages of thread pool:
As long as the work of thread pool is to control the number of running threads, put the tasks in the queue during processing, and then start these tasks after the threads are created. If the number of threads exceeds the maximum number, the threads exceeding the number will queue up and wait until other threads ar ...
Added by Lucnet on Fri, 18 Feb 2022 09:43:24 +0200
Java Memory Model for Java Concurrent Programming
1. Java Memory Model
JMM is the Java Memory Model, which defines the abstract concepts of main memory and working memory from the Java level. The bottom layer corresponds to CPU register, cache, hardware memory, CPU instruction optimization, etc. JMM is reflected in the following aspects:
Atomicity - ensures that instructions are not affe ...
Added by Alkimuz on Mon, 14 Feb 2022 16:59:16 +0200
Use and principle of AQS related implementation classes
1,AQS
1.1 overview
Its full name is AbstractQueuedSynchronizer. It is the framework of blocking lock and related synchronizer tools, which has its own characteristics
The state attribute is used to represent the state of resources (exclusive mode and shared mode). Subclasses need to define how to maintain this state and control how ...
Added by rainerpl on Mon, 14 Feb 2022 03:07:35 +0200