色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java核心線程和非核心線程

Java中的多線程編程需要了解核心線程和非核心線程的概念。在Java中,線程分為兩種類型:核心線程和非核心線程。

核心線程是指直接由Thread類或者ThreadPoolExecutor類創(chuàng)建的線程,這些線程通常執(zhí)行任務(wù)隊(duì)列中的任務(wù),并且不會(huì)被回收。當(dāng)任務(wù)隊(duì)列中沒有任務(wù)時(shí),核心線程會(huì)阻塞,等待新的任務(wù)產(chǎn)生。如果創(chuàng)建ThreadPoolExecutor時(shí)使用了ThreadPoolExecutor的預(yù)初始化機(jī)制,核心線程會(huì)一直存在,甚至在沒有任務(wù)時(shí)也不會(huì)被回收。

public class CoreThreadDemo {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(5);
for (int i = 0; i< 10; i++) {
executorService.execute(new Task());
}
executorService.shutdown();
}
}
class Task implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + ": hello world");
}
}

非核心線程也稱為輔助線程,這些線程是在任務(wù)隊(duì)列中等待任務(wù)時(shí)動(dòng)態(tài)創(chuàng)建的,當(dāng)任務(wù)隊(duì)列滿時(shí),會(huì)增加非核心線程來執(zhí)行任務(wù)。當(dāng)任務(wù)完成后,非核心線程會(huì)進(jìn)行回收或者保留一段時(shí)間,以備重用。如果非核心線程在指定時(shí)間內(nèi)沒有執(zhí)行新任務(wù),則會(huì)被回收。

public class NonCoreThreadDemo {
public static void main(String[] args) {
ExecutorService executorService = new ThreadPoolExecutor(
5, 10, 1L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(15), Executors.defaultThreadFactory(), new ThreadPoolExecutor.AbortPolicy());
for (int i = 0; i< 20; i++) {
executorService.execute(new Task());
}
executorService.shutdown();
}
}

在實(shí)際應(yīng)用中,根據(jù)任務(wù)類型和業(yè)務(wù)需求來合理分配核心線程數(shù)和非核心線程數(shù),以達(dá)到最優(yōu)的性能效果。