App下載
首頁javaconcurrentJava Thread - 如何避免并發(fā)執(zhí)行一個耗時的任務(wù)而不阻塞

Java Thread - 如何避免并發(fā)執(zhí)行一個耗時的任務(wù)而不阻塞

我們想知道如何避免并發(fā)執(zhí)行一個耗時的任務(wù)而不阻塞。
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
public class Main {
final int CPU_COUNT = 4;
BlockingQueue<Runnable> lightTaskQueue = new LinkedBlockingDeque<Runnable>();
ThreadPoolExecutor lightExecutor = new ThreadPoolExecutor(CPU_COUNT,
CPU_COUNT, 60L, TimeUnit.SECONDS, lightTaskQueue);
BlockingQueue<Runnable> heavyTaskQueue = new LinkedBlockingDeque<Runnable>();
ThreadPoolExecutor heavyExecutor = new ThreadPoolExecutor(1, 1, 60L,
TimeUnit.SECONDS, heavyTaskQueue);
static AtomicBoolean heavyTaskRunning = new AtomicBoolean();
public void shutDownNow() {
lightExecutor.shutdownNow();
heavyExecutor.shutdownNow();
}
public void runOrQueueLightTask(SampleLightTask lightOne) {
lightExecutor.execute(lightOne);
}
public void runOrQueueHeavyTask(SampleHeavyTask heavyOne) {
if (heavyTaskRunning.get()) {
System.out.println("running, skipped new one: " + heavyOne);
return;
}
this.heavyExecutor.execute(heavyOne);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
App下載
App下載

掃描二維碼

下載編程獅App

關(guān)注有禮
微信公眾號

掃碼關(guān)注 領(lǐng)資料包

意見反饋
幫助中心
返回頂部