JUC concurrent programming
JUC (concurrent programming)
1. What is JUC
java.util.concurrent package is a tool class used in concurrent programming. It has the following three packages:
java.util Toolkit
Business: common Thread code Thread
Runnable has no return value and its efficiency is relatively lower than that of Callable!)
(
2. Threads and processes
Th ...
Posted by daniminas on Sun, 23 Jan 2022 13:25:22 +0100
JUC concurrent programming -- ForkJoin mode
catalogue
1, What is ForkJoin
2, ForkJoin is easy to use
3, ForkJoin principle
Core API
Job theft algorithm
ForKJoin principle
1, What is ForkJoin
"Divide and conquer" is an idea. The so-called "divide and conquer" is to divide a complex algorithm problem into several smaller parts according to a certain "dec ...
Posted by emdee on Sun, 23 Jan 2022 11:53:32 +0100
JUC concurrent programming
Thread six states
New: a new thread object has been created, but the start() method has not been called yet.Runnable: the two states of ready and running in Java threads are generally called "running". After the thread object is created, other threads (such as main thread) call the start() method of the object. The thread in ...
Posted by loquaci on Sat, 22 Jan 2022 02:45:46 +0100
[JUC] source code analysis of CyclicBarrier
CyclicBarrier
1. Introduction
Loop fence is used for thread cooperation and waiting for threads to meet a certain count. When constructing, set the count number. When each thread executes to a time when synchronization is required, call the await() method to wait. When the number of waiting threads meets the count number, continue to exec ...
Posted by pete07920 on Fri, 14 Jan 2022 15:59:18 +0100
JUC concurrent programming -- Interpretation of AQS source code
catalogue
1. What is AQS
2. Use of LockSupport
3. Analyze AQS source code with ReentrantLock
Unfair locking operation
Release lock operation
1. What is AQS
AQS(AbstractQueuedSynchronizer) is a framework used to build locks and synchronizers. Using AQS can easily and efficiently construct a large number of synchronizers widely used, su ...
Posted by matthew798 on Sat, 08 Jan 2022 13:08:11 +0100
Java learning notes - JUC concurrent programming
Concurrent programming
1. Processes and threads
Process: an execution process of a program. It is the basic unit for the system to run the program.
A thread is similar to a process, but a thread is a smaller execution unit than a process. A process can produce multiple threads during its execution. Different from the process, multiple th ...
Posted by millwardt on Sat, 08 Jan 2022 08:55:29 +0100
JUC concurrent programming --- thread pool, parallel computing ForkJoin, asynchronous callback FutureTask and completable future
JUC notes
JUC concurrent programming (I) - multithreading review, Synchronized and Lock locks, Condition thread communication, eight Lock problemJUC concurrent programming (II) - set insecurity and solutions under concurrency, read-write lock, blocking queue
10. Callable review
Details: Multithreaded pickup
The difference between Cal ...
Posted by Arnerd on Fri, 07 Jan 2022 20:56:51 +0100
Java JUC ThreadLocalRandom class parsing
ThreadLocalRandom class parsingprefaceThreadLocalRandom class is a new Random number generator added by JDK7 under JUC package. It mainly solves the shortage of Random class under multithreading.This article explains the principle of the random thread class and why it needs to be implemented.Random class and its limitationsFirst, let's look at ...
Posted by kasitzboym on Wed, 05 Jan 2022 09:27:28 +0100
Three problems in concurrent programming
1, Visibility
Visibility: when one thread modifies a shared variable, the other thread immediately gets the latest modified value.
Case demonstration: one thread loops through flag and while according to the boolean flag, and another thread changes the value of the flag variable A thread does not stop the loop.
/**
* Objective: to dem ...
Posted by jhonrputra on Tue, 04 Jan 2022 13:13:48 +0100
JUC concurrent programming
Synchronous and asynchronous:
You need to wait for the result to return before you can continue running, which is synchronizationIt is asynchronous to continue running without waiting for the result to return
start() and run()
difference:
Call start() to start a new thread. Stealing the run() method is a call to an ordinary method and wil ...
Posted by metalenchantment on Fri, 10 Dec 2021 13:52:01 +0100