java執行緒池使用

2021-08-21 18:32:12 字數 1865 閱讀 6619

newcachedthreadpool

newfixedthreadpool

newscheduledthreadpool

newsinglethreadexecutor

單例物件中的執行緒池使用

建立乙個可快取執行緒池,如果執行緒池長度超過處理需要,可靈活**空閒執行緒,若無可**,則新建執行緒:

executorservice exec = executors.newcachedthreadpool();

//此處例項化自己的執行緒

runnable nextoutsiderunner = new nextoutsiderunner (areacode);

exec.submit(nextoutsiderunner);

//所有執行緒提交完後執行

exec.shutdown();

建立乙個定長線程池,可控制線程最大併發數,超出的執行緒會在佇列中等待:

//poolsize指定了執行緒池最大併發數

executorservice pool = executors.newfixedthreadpool(poolsize);

exec.submit(nextoutsiderunner);

//所有執行緒提交完後執行

exec.shutdown();

建立乙個支援定時及週期性任務執行的定長線程池,延遲3秒執行:

scheduledexecutorservice scheduledthreadpool = executors.newscheduledthreadpool(5);

scheduledthreadpool.schedule(new runnable()

}, 3, timeunit.seconds);

建立乙個支援定時及週期性任務執行的定長線程池,延遲1秒後每3秒執行一次。:

scheduledthreadpool.scheduleatfixedrate(new runnable() 

}, 1, 3, timeunit.seconds);

建立乙個單執行緒化的執行緒池,它只會用唯一的工作執行緒來執行任務,保證所有任務按照指定順序(fifo, lifo, 優先順序)執行:

executorservice singlethreadexecutor = executors.newsinglethreadexecutor();

for (int i = 0; i < 10; i++) catch (interruptedexception e)

}});

}

結果依次輸出,相當於順序執行各個任務。

現行大多數gui程式都是單執行緒的。android中單執行緒可用於資料庫操作,檔案操作,應用批量安裝,應用批量刪除等不適合併發但可能io阻塞性及影響ui執行緒響應的操作。

在保證執行緒安全的同時,對最大併發數做一定限制,方便優化系統效能:

//定義物件控制代碼

private

static object object;

//執行緒池最大併發數

public

static

final

int thread_pool_size = 5;

private 私有建構函式()

}//方法體

public

void 方法(final string para1, final string para2)

});}

java執行緒池場景使用

當伺服器介面之間通訊中,如果a伺服器請求b伺服器,只返回請求通訊成功且不需要實時返回業務成功或失敗時,處理成功或者失敗用非同步通知方式,那麼可以採用執行緒池或者訊息佇列 業務場景 金融業務中的強風控,還款等等 重點 如果需要同步通知業務成功或失敗,讓a伺服器提供通知介面,在伺服器b執行緒中可以同步通...

Java執行緒池

executors類詳解 此包中所定義的 executor executorservice scheduledexecutorservice threadfactory 和 callable 類的工廠和實用方法。此類支援以下各種方法 建立並返回設定有常用配置字串的 executorservice 的...

Java執行緒池

一 執行緒池 單執行緒 public static void runsinglethreadpool public static void runsinglethreadpoolwithfactory private static class mythreadfactory implements t...