当前位置:网站首页>Pooling idea: string constant pool, thread pool, database connection pool
Pooling idea: string constant pool, thread pool, database connection pool
2022-07-03 22:07:00 【ZJH'blog】
Pool thought
Resources are reused , Return after use , Save a lot of time and resources wasted in building and destroying , There are still a lot of resources for establishment and destruction
String constant pool
Constant pools are independent of stacks and heaps , The following two creation methods are different
1, Save the contents of constant pool directly
String s1 = “ Save directly ”
2,new String Save indirectly
String s2 = new String(“ Save indirectly ”)
difference :
- Save directly , No matter how many are created, they are the same
- Indirect saving actually saves the address value , Point to thread pool , This method produces two objects ; If you save indirectly for many times , for example :
String s3 = new String(“ Save indirectly ”)
String s4 = new String(“ Save indirectly ”)
String s5 = new String(“ Save indirectly ”)
In fact, only one is created in the constant pool " Save indirectly " The object of , The reference object creates 3 Time
Thread pool
Advantages compared with tradition
- Traditional thread implementation methods include thread creation Thread to destroy Time for , Threads can be reused , So the thread pool is introduced , Create and destroy threads Change it to Return after use , Not destroyed , Reuse resources , Improve thread utilization , Improve the response speed of the program
- Easy to manage Thread objects in a unified way
- You can control the maximum concurrency
Thread pool model —— Bank
Counter window : Threads , Without destroying
Waiting area : Waiting in line
When the window is not enough : Add threads
When there are no seats in the waiting area : Refusal strategy —— Report an exception or give it to a thread to go left
There are too many free windows : Reduce threads
Thread pool creation
JUC The concurrency toolkit provides ThreadPoolExecutor Creating a thread pool ,ThreadPoolExecutor Yes 8 Parameters , Respectively :
- corePoolSize: Number of core threads —— The number of counter windows that never close
- maximumPoolSize: Maximum number of threads —— The maximum number of windows
- keepAliveTime: Thread lifetime —— How long does it take for a non core thread to be destroyed without receiving a task —— You need to set the unit unit
- unit:TimeUnit.SECONDS or TimeUnit.MICROSECONDS You can wait
- BlockingQueue : Waiting in line ,new ArrayBlockingQueue<>(capacity:10) here capacity The value of the set 10
- ThreadFactory: Thread factory —— No need to create , Call directly Executors.defaultThreadFactory()
- RejectedExecutionHandler: Refusal strategy ——new ThreadPoolExecutor.AbortPolicy() The handler of the rejected task , Throw a RejectedExecutionException
After creating it, use ExecutorService Class object to receive , Then you can directly call
for example : utilize lambda expression
for(){
executorService.execute( ()->{ Thread business logic } );
}// The thread pool will automatically adjust the current number of threads
executorService.shutdown();// Close thread pool
Reference resources :
Database connection pool
advantage
- Resource reuse
- Faster system response
- New means of resource allocation
- Unified connection management , Avoid database connection leaks
Excellent open source database connection pool agent
(1)DBCP yes Apache Database connection pool provided .tomcat The server comes with dbcp Database connection pool . Speed is relative to c3p0 Faster , But because of its own existence BUG,Hibernate3 Support is no longer available .
(2)C3P0 It is a database connection pool provided by an open source organization , Relatively slow , Stability is OK ,hibernate Official recommendation .
(3)Proxool yes sourceforge The next open source project database connection pool , It has the function of monitoring connection pool status , More stable c3p0 almost .
(4)BoneCP Is a database connection pool provided by an open source organization , Fast .
(5)Druid It is the database connection pool provided by Ali , It's said to be a collection DBCP 、C3P0 、Proxool All in one database connection pool , But the speed is not sure if there is BoneCP fast .
边栏推荐
- Control loop of program (while loop)
- English topic assignment (28)
- Global and Chinese market of wireless hard disk 2022-2028: Research Report on technology, participants, trends, market size and share
- Market layout planning and latest dynamic analysis report of China's smart public security industry Ⓕ 2022 ~ 2028
- The latest analysis of R1 quick opening pressure vessel operation in 2022 and the examination question bank of R1 quick opening pressure vessel operation
- Go language slice interview real question 7 consecutive questions
- 2022-2-14 acwing1027 grid access
- Analysis report on the development prospect and investment strategy of global and Chinese modular automation systems Ⓟ 2022 ~ 2027
- UC Berkeley proposes a multitask framework slip
- Uboot migration
猜你喜欢
Farmersworld farmers world, no faith, how to talk about success?
Mysql database - Advanced SQL statement (I)
[dynamic planning] counting garlic customers: the log of garlic King (the longest increasing public subsequence)
Collection | pytoch common loss function disassembly
treevalue——Master Nested Data Like Tensor
Yiwen teaches you how to choose your own NFT trading market
How PHP adds two numbers
Code in keil5 -- use the code formatting tool astyle (plug-in)
Teach you how to install aidlux (1 installation)
常用sql集合
随机推荐
Pengcheng cup Web_ WP
Kali2021.4a build PWN environment
Cesium terrain clipping draw polygon clipping
Global and Chinese market of wireless hard disk 2022-2028: Research Report on technology, participants, trends, market size and share
Cognitive fallacy: what is Fredkin's paradox
Electronic tube: Literature Research on basic characteristics of 6j1
Exclusive interview with the person in charge of openkruise: to what extent has cloud native application automation developed now?
Under the double reduction policy, research travel may become a big winner
DR-NAS26-Qualcomm-Atheros-AR9582-2T-2R-MIMO-802.11-N-5GHz-high-power-Mini-PCIe-Wi-Fi-Module
gslb(global server load balance)技術的一點理解
English topic assignment (28)
The latest analysis of R1 quick opening pressure vessel operation in 2022 and the examination question bank of R1 quick opening pressure vessel operation
Go language slice interview real question 7 consecutive questions
[dynamic programming] Ji Suan Ke: Suan tou Jun breaks through the barrier (variant of the longest increasing subsequence)
The 14th five year plan for the construction of Chinese Enterprise Universities and the feasibility study report on investment Ⓓ 2022 ~ 2028
gslb(global server load balance)技术的一点理解
Let me ask you a question. Have you ever used the asynchronous io of Flink SQL to associate dimension tables in MySQL? I set various settings according to the official website
国泰君安证券开户是安全可靠的么?怎么开国泰君安证券账户
Covariance
Decompile and modify the non source exe or DLL with dnspy