国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

線程池簡(jiǎn)單應(yīng)用(不做深入分析)

microcosm1994 / 2645人閱讀

摘要:創(chuàng)建實(shí)現(xiàn)類執(zhí)行結(jié)束再創(chuàng)建測(cè)試類,并創(chuàng)建線程池創(chuàng)建線程池說(shuō)明類和接口提供線程池操作的接口提供方法,傳入的實(shí)例即本例中的的實(shí)現(xiàn)類,提供種構(gòu)造方法。時(shí)間單位線程工廠用來(lái)創(chuàng)建線程的。

創(chuàng)建Runnable實(shí)現(xiàn)類

package ThreadTest;
/**
 * 
 * @author Administrator
 *
 */
public class RunnableTest implements Runnable {
    
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println(Thread.currentThread().getName()+"--"+i);
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println(Thread.currentThread().getName()+"--執(zhí)行結(jié)束");
    }

}

再創(chuàng)建測(cè)試類,并創(chuàng)建線程池

package ThreadTest;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import com.google.common.util.concurrent.ThreadFactoryBuilder;

public class ThreadPoolTest {

    public static void main(String[] args) {
        ThreadFactory threadFactory=new ThreadFactoryBuilder().setNameFormat("myThreadPool-%d").build();
        LinkedBlockingQueue workQueue=new LinkedBlockingQueue(250);
        ExecutorService executor=new ThreadPoolExecutor(3, 5, 20, TimeUnit.SECONDS, workQueue, threadFactory);//創(chuàng)建線程池
        for(int i=0;i<10;i++){
            RunnableTest test=new RunnableTest();
            executor.execute(test);
        }
    }

}

說(shuō)明
類和接口

1 ExecutorService 提供線程池操作的接口
    提供void execute(Runnable command)方法,傳入Runnable的實(shí)例即本例中的test;
2 ThreadPoolExecutor ExecutorService的實(shí)現(xiàn)類,提供4種構(gòu)造方法。(只寫(xiě)最后一個(gè))
   new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);
   (1)corePoolSize 核心線程數(shù),即本例中填寫(xiě)的數(shù)字3。
   (2)workQueue任務(wù)隊(duì)列,負(fù)責(zé)存放超過(guò)核心線程數(shù)的請(qǐng)求,可指定大小如本例中LinkedBlockingQueue(250)的250;
   (3)maximumPoolSize 創(chuàng)建最大線程數(shù),只有當(dāng)請(qǐng)求超過(guò)任務(wù)隊(duì)列容量和核心線程數(shù)量是才會(huì)創(chuàng)建,即本例中250+3=253;
   (4)handler 當(dāng)請(qǐng)求超過(guò)最大線程數(shù)maximumPoolSize和任務(wù)隊(duì)列容量之和時(shí),會(huì)調(diào)用。(可以查看該RejectedExecutionHandler接口的幾個(gè)實(shí)現(xiàn)類,定義了處理策略,一般默認(rèn)就行)
   (5)keepAliveTime 線程存活時(shí)間,對(duì)擋前線程多于核心線程數(shù)量時(shí)會(huì)殺死多于的線程保留到核心線程數(shù)量。
   (6)unit 時(shí)間單位
   (7)ThreadFactory 線程工廠 用來(lái)創(chuàng)建線程的。(采用Google guava來(lái)創(chuàng)建的)

運(yùn)行展示

創(chuàng)建了0,1,2 三個(gè)核心線程(當(dāng)有請(qǐng)求時(shí)核心線程才會(huì)創(chuàng)建,除非手動(dòng)設(shè)置);
運(yùn)行過(guò)程中可以通過(guò)動(dòng)態(tài)更改corePoolSize和maximumPoolSize 的大小,但是只有ThreadPoolExecutor提供了set方法。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/68332.html

相關(guān)文章

  • JVM系列(一):深入詳解JVM 內(nèi)存區(qū)域總結(jié)!

    摘要:一內(nèi)存區(qū)域虛擬機(jī)在運(yùn)行時(shí),會(huì)把內(nèi)存空間分為若干個(gè)區(qū)域,根據(jù)虛擬機(jī)規(guī)范版的規(guī)定,虛擬機(jī)所管理的內(nèi)存區(qū)域分為如下部分方法區(qū)堆內(nèi)存虛擬機(jī)棧本地方法棧程序計(jì)數(shù)器。前言 在JVM的管控下,Java程序員不再需要管理內(nèi)存的分配與釋放,這和在C和C++的世界是完全不一樣的。所以,在JVM的幫助下,Java程序員很少會(huì)關(guān)注內(nèi)存泄露和內(nèi)存溢出的問(wèn)題。但是,一旦JVM發(fā)生這些情況的時(shí)候,如果你不清楚JVM內(nèi)存的...

    Aldous 評(píng)論0 收藏0
  • Java深入-框架技巧

    摘要:從使用到原理學(xué)習(xí)線程池關(guān)于線程池的使用,及原理分析分析角度新穎面向切面編程的基本用法基于注解的實(shí)現(xiàn)在軟件開(kāi)發(fā)中,分散于應(yīng)用中多出的功能被稱為橫切關(guān)注點(diǎn)如事務(wù)安全緩存等。 Java 程序媛手把手教你設(shè)計(jì)模式中的撩妹神技 -- 上篇 遇一人白首,擇一城終老,是多么美好的人生境界,她和他歷經(jīng)風(fēng)雨慢慢變老,回首走過(guò)的點(diǎn)點(diǎn)滴滴,依然清楚的記得當(dāng)初愛(ài)情萌芽的模樣…… Java 進(jìn)階面試問(wèn)題列表 -...

    chengtao1633 評(píng)論0 收藏0
  • Java線程簡(jiǎn)單總結(jié)

    摘要:本文主要內(nèi)容為簡(jiǎn)單總結(jié)中線程池的相關(guān)信息。方法簇方法簇用于創(chuàng)建固定線程數(shù)的線程池。三種常見(jiàn)線程池的對(duì)比上文總結(jié)了工具類創(chuàng)建常見(jiàn)線程池的方法,現(xiàn)對(duì)三種線程池區(qū)別進(jìn)行比較。 概述 線程可認(rèn)為是操作系統(tǒng)可調(diào)度的最小的程序執(zhí)行序列,一般作為進(jìn)程的組成部分,同一進(jìn)程中多個(gè)線程可共享該進(jìn)程的資源(如內(nèi)存等)。在單核處理器架構(gòu)下,操作系統(tǒng)一般使用分時(shí)的方式實(shí)現(xiàn)多線程;在多核處理器架構(gòu)下,多個(gè)線程能夠...

    CoorChice 評(píng)論0 收藏0
  • PHP程序員學(xué)習(xí)路線

    摘要:第一階段基礎(chǔ)階段基礎(chǔ)程序員重點(diǎn)把搞熟練核心是安裝配置基本操作目標(biāo)能夠完成基本的系統(tǒng)安裝,簡(jiǎn)單配置維護(hù)能夠做基本的簡(jiǎn)單系統(tǒng)的開(kāi)發(fā)能夠在中型系統(tǒng)中支持某個(gè)功能模塊的開(kāi)發(fā)。本項(xiàng)不做重點(diǎn)學(xué)習(xí),除非對(duì)前端有興趣。 第一階段:基礎(chǔ)階段(基礎(chǔ)PHP程序員) 重點(diǎn):把LNMP搞熟練(核心是安裝配置基本操作) 目標(biāo):能夠完成基本的LNMP系統(tǒng)安裝,簡(jiǎn)單配置維護(hù);能夠做基本的簡(jiǎn)單系統(tǒng)的PHP開(kāi)發(fā);能夠在P...

    genedna 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

microcosm1994

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<