blockingqueue的實現都是執行緒安全的,子類如下:
synchronousqueue、linkedblockingqueue、linkedblockingdeque、arrayblockingqueue、delayqueue、priorityblockingqueue。
synchronousqueue:
是無界的,是一種無緩衝的等待佇列。
linkedblockingqueue:
linkedblockingqueue基於鍊錶,預設integer.max_value,可以指定大小。
arrayblockingqueue:
arrayblockingqueue基於陣列,必須指定大小。
executors類提供的四種執行緒池:
1、fixedthreadpool,定長線程池,核心執行緒與最大執行緒數一致,無空閒超時時間(表示核心執行緒一直存活),當核心執行緒都在使用時,新任務存入佇列等待。
定義:public static executorservice newfixedthreadpool(int nthreads)
使用:executorservice fixedthreadpool = executors.newfixedthreadpool(4);
fixedthreadpool.submit(new runnable()
});2、cachedthreadpool,核心執行緒為0,執行緒最大為integer.max_value(無限制),空閒超時時間60秒,有新任務時立刻執行,無任務時60秒後被**。
定義:public static executorservice newcachedthreadpool()
使用:executorservice cachedthreadpool = executors.newcachedthreadpool();
cachedthreadpool.submit(new runnable()
});3、scheduledthreadpool,執行緒最大為integer.max_value(無限制),無空閒超時時間(表示執行緒一直存活),可設定延時定時執行任務。
定義:public static scheduledexecutorservice newscheduledthreadpool(int corepoolsize)
public scheduledthreadpoolexecutor(int corepoolsize)
使用:scheduledexecutorservice scheduledthreadpool = executors.newscheduledthreadpool(4);
scheduledthreadpool.scheduleatfixedrate(new runnable()
}, delay, period, timeunit.seconds);
4、singlethreadexecutor,核心執行緒與最大執行緒為1,無空閒超時時間(表示唯一的核心執行緒一直存活),執行緒工作時,有新任務則加入佇列等待,用於順序執行各個任務。
public static executorservice newsinglethreadexecutor()
使用:executorservice singlethreadexecutor = executors.newsinglethreadexecutor();
singlethreadexecutor.submit(new runnable()
});
執行緒池ExecutorService 的使用
executes the given command at some time in the future.the command may execute in a new thread,in a pooled thread,or in the calling thread,at the discr...
Android執行緒池
executors jdk1.5之後的乙個新類,提供了一些靜態工廠,生成一些常用的執行緒池,threadpoolexecutor是executors類的底層實現 1.newsinglethreadexecutor 建立乙個單執行緒的執行緒池。這個執行緒池只有乙個執行緒在工作,也就是相當於單執行緒序列...
Android 執行緒池
threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepalivetime,timeunit unit blockingqueueworkqueue,threadfactory threadfactory corepoolsi...