当前位置:网站首页>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 .
边栏推荐
- Teach you how to install aidlux (1 installation)
- An expression that regularly matches one of two strings
- JS closure knowledge points essence
- Intimacy communication -- [repair relationship] - use communication to heal injuries
- Global and Chinese market of gallic acid 2022-2028: Research Report on technology, participants, trends, market size and share
- English topic assignment (28)
- Oil monkey plug-in
- 90 後,辭職創業,說要卷死雲數據庫
- [dynamic programming] Ji Suan Ke: Suan tou Jun breaks through the barrier (variant of the longest increasing subsequence)
- 2022 safety officer-b certificate examination summary and safety officer-b certificate simulation test questions
猜你喜欢

What indicators should be paid attention to in current limit monitoring?

Why use pycharm to run the use case successfully but cannot exit?

Imitation Netease cloud music applet

The latest analysis of crane driver (limited to bridge crane) in 2022 and the test questions and analysis of crane driver (limited to bridge crane)

IPhone development swift foundation 09 assets

Collections SQL communes

Control loop of program (while loop)

Asynchronous artifact: implementation principle and usage scenario of completable future

90 后,辞职创业,说要卷死云数据库
![[dynamic planning] counting garlic customers: the log of garlic King (the longest increasing public subsequence)](/img/29/543dce2f24130d22c1824385fbfa8f.jpg)
[dynamic planning] counting garlic customers: the log of garlic King (the longest increasing public subsequence)
随机推荐
2022 electrician (elementary) examination questions and electrician (elementary) registration examination
What if the Flink SQL client exits and the table is emptied?
Covariance
How PHP drives mongodb
Solve the problem that openocd fails to burn STM32 and cannot connect through SWD
JS notes (III)
JS demo calculate how many days are left in this year
Tidb's initial experience of ticdc6.0
treevalue——Master Nested Data Like Tensor
Global and Chinese market of recycled yarn 2022-2028: Research Report on technology, participants, trends, market size and share
2022-2-14 acwing1027 grid access
Netfilter ARP log
Great gods, I want to send two broadcast streams: 1. Load basic data from MySQL and 2. Load changes in basic data from Kafka
On my first day at work, this API timeout optimization put me down!
Uboot migration
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
Yyds dry inventory Chapter 4 of getting started with MySQL: data types that can be stored in the data table
使用dnSpy對無源碼EXE或DLL進行反編譯並且修改
DR-NAS26-Qualcomm-Atheros-AR9582-2T-2R-MIMO-802.11-N-5GHz-high-power-Mini-PCIe-Wi-Fi-Module
常用sql集合
