当前位置:网站首页>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 .
边栏推荐
- The White House held an open source security summit, attended by many technology giants
- js demo 计算本年度还剩下多少天
- 2022 electrician (elementary) examination questions and electrician (elementary) registration examination
- Netfilter ARP log
- No more! Technical team members resign collectively
- China's coal industry investment strategic planning future production and marketing demand forecast report Ⓘ 2022 ~ 2028
- Persistence of Nacos
- Collections SQL communes
- How PHP drives mongodb
- Cesium terrain clipping draw polygon clipping
猜你喜欢
Persistence of Nacos
gslb(global server load balance)技术的一点理解
Code in keil5 -- use the code formatting tool astyle (plug-in)
MySQL——JDBC
90 后,辞职创业,说要卷死云数据库
Station B, dark horse programmer, employee management system, access conflict related (there is an unhandled exception at 0x00007ff633a4c54d (in employee management system.Exe): 0xc0000005: read locat
On my first day at work, this API timeout optimization put me down!
Functions and differences between static and Const
2022 safety officer-a certificate registration examination and summary of safety officer-a certificate examination
2022 G3 boiler water treatment registration examination and G3 boiler water treatment examination papers
随机推荐
Rest reference
flink sql-client 退出,表就会被清空怎么办?
Mysql database - Advanced SQL statement (I)
How to install sentinel console
Minio deployment
What is the difference between res.send() and res.end() in the node express framework
Nacos common configuration
2022-02-15 Daily: 2022 AAAI fellow release
MySQL——idea连接MySQL
Are the top ten securities companies safe to open accounts and register? Is there any risk?
Cesium terrain clipping draw polygon clipping
Solve the problem that openocd fails to burn STM32 and cannot connect through SWD
What indicators should be paid attention to in current limit monitoring?
2022 high altitude installation, maintenance and removal of examination question bank and high altitude installation, maintenance and removal of examination papers
Correlation
The post-90s resigned and started a business, saying they would kill cloud database
(POJ - 2912) rochambau (weighted concurrent search + enumeration)
China's TPMS industry demand forecast and future development trend analysis report Ⓐ 2022 ~ 2028
js demo 計算本年度還剩下多少天
Décompiler et modifier un exe ou une DLL non source en utilisant dnspy