Нимирӯзи ба хайр.
Барои чунин мусоҳиба саволе ҳаст.
Шумо чанд роҳи эҷоди риштаҳоро медонед? Дар ҷавобҳо рақами 2 пайдо мешавад: ё эҷод кунед
Thread
, онро гузаронед
Runnable
ё an objectи синфи наслиро эҷод кунед,
Thread
ки дар он
run()
. Аммо ман ҳайрон шудам: ин ду аст? Агар шумо
concurrent
, масалан -ро истифода баред,
Executors.newFixedThreadPool(5)
пас вақте ки an objectҳои ришта сохта мешаванд, фавран ҳангоми иҷрои ин усул ё дертар, вақте ки вазифаҳо барои иҷро пайдо мешаванд (охир, онҳо метавонанд пайдо нашаванд). Ҳамаи ин усулҳои заводӣ як намуди конфигуратсияро бармегардонанд
ThreadPoolExecutor
, ки яке аз параметрҳои конфигуратсияро дорад.Дар
corePoolSize
бораи ин майдон навишта шудааст:
corePoolSize
– шумораи риштаҳое, ки дар ҳавз нигоҳ дошта мешаванд,
ҳатто агар онҳо бекор бошанд , агар
allowCoreThreadTimeOut
муқаррар карда нашуда бошад Аз тарафи дигар, агар супоришҳо наомада бошанд, пас мо 5 коргарро бекор сохтем, шояд онҳо ҳангоми расидани супоришҳо ба вуҷуд меоянд?
Умуман, 2 ё 3 вариантро метавон ҳамчун ҷавоб ба савол дар хотир нигоҳ дошт?
GO TO FULL VERSION