Examples of problems caused by High concurrency in java
This article will explain in detail the examples of problems caused by high concurrency in java. The editor thinks it is very practical, so I share it with you for reference. I hope you can get something after reading this article.
The example simulates 10000 requests with a concurrent number of 100. for each request, the counter is added by 1, and the counter value is finally output.
The above code:
Package concurrent;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/** * @ Description: concurrent testing * / public class ConcurrentSample {/ / number of concurrent threads private static int users = 100; / / visits private static int count = 10000; / / Total access private static int number = 0 Public static void main (String [] args) {/ / define thread pool ExecutorService executorService = Executors.newCachedThreadPool (); / / concurrency Semaphore semaphore = new Semaphore (users); for (int I = 0; I
< count; i++) { executorService.execute(() ->{try {semaphore.acquire (); add (); semaphore.release ();} catch (Exception e) {e.printStackTrace ();}});} try {Thread.sleep (3000) } catch (Exception e) {e.printStackTrace ();} executorService.shutdown (); System.out.println (number);} public static void add () {number++;}}
Counter: 9997
Counter: 10000
Counter: 9997
Every time the output is inconsistent, it is caused by concurrency.
This is the end of this article on "examples of problems caused by high concurrency in java". I hope the above content can be of some help to you, so that you can learn more knowledge. if you think the article is good, please share it for more people to see.