1. 程式人生 > >spring中使用執行緒池

spring中使用執行緒池



bean 配置


applicationContext.xml

<bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
		<!-- 核心執行緒數,預設為1 -->
		<property name="corePoolSize" value="10" />
		<!-- 最大執行緒數,預設為Integer.MAX_VALUE -->
		<property name="maxPoolSize" value="50" />
		<!-- 佇列最大長度,一般需要設定值>=notifyScheduledMainExecutor.maxNum;預設為Integer.MAX_VALUE 
			<property name="queueCapacity" value="1000" /> -->
		<!-- 執行緒池維護執行緒所允許的空閒時間,預設為60s -->
		<property name="keepAliveSeconds" value="300" />
		<!-- 執行緒池對拒絕任務(無執行緒可用)的處理策略,目前只支援AbortPolicy、CallerRunsPolicy;預設為後者 -->
		<property name="rejectedExecutionHandler">
		<!-- AbortPolicy:直接丟擲java.util.concurrent.RejectedExecutionException異常 -->
		<!-- CallerRunsPolicy:主執行緒直接執行該任務,執行完之後嘗試新增下一個任務到執行緒池中,可以有效降低向執行緒池內新增任務的速度 -->
		<!-- DiscardOldestPolicy:拋棄舊的任務、暫不支援;會導致被丟棄的任務無法再次被執行 -->
		<!-- DiscardPolicy:拋棄當前任務、暫不支援;會導致被丟棄的任務無法再次被執行 -->
		<bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
		</property>
	</bean>




maven配置jar包

pom.xml 

<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-context-support</artifactId> 
<version>3.0.5.RELEASE</version> 
</dependency> 



如何呼叫:
 @Autowired
 private ThreadPoolTaskExecutor threadPoolTaskExecutor;
public void method(){
threadPoolTaskExecutor.execute(new Runnable() {
				
				@Override
				public void run() {
						//具體實現
					}

				});

}


相關推薦

Junit單元測試+aop+spring+執行,在進行Junit測試時切面執行內呼叫的方法不執行

一、問題背景: 寫了一個切面,指向某service包下的所有類及方法,當該service包下方法被呼叫時切面執行,切面中用了執行緒池ExecutorService pool = Executors.newFixedThreadPool(5);執行緒池內呼叫了dao層的方法。 二、問題描述:單

沉澱再出發:java執行解析

沉澱再出發:java中執行緒池解析 一、前言    在多執行緒執行的環境之中,如果執行緒執行的時間短但是啟動的執行緒又非常多,執行緒運轉的時間基本上浪費在了建立和銷燬上面,因此有沒有一種方式能夠讓一個執行緒執行完自己的任務之後又被重複使用呢?執行緒池的出現就是為了解決這個問題。到了現在

Java執行基本api及其作用

1.執行緒池相關的類 2.重要類的api及其方法 Executors.newCachedThreadPool() 建立一個可快取的執行緒池 Executors.newSingleThreadExecutor();建立一個只有一個執行緒執行的 不可修改的執行緒池  

常見4執行

執行緒池能有效的處理多個執行緒的併發問題,避免大量的執行緒因為互相強佔系統資源導致阻塞現象,能夠有效的降低頻繁建立和銷燬執行緒對效能所帶來的開銷。真正執行緒池的實現是通過ThreadPoolExecutor,ThreadPoolExecutor通過配置不同的引數配置來建立執行緒池。下面簡單的介紹一下各個執行緒

java執行的生命週期

執行緒池生命週期包括: RUNNING:接收新的任務並處理佇列中的任務 SHUTDOWN:不接收新的任務,但是處理佇列中的任務 STOP:不接收新的任務,不處理佇列中的任務,同時中斷處理中的任務 TIDYING:所有的任務處理完成,有效的執行緒數是0 TERMINATED:termin

Java執行,你真的會用嗎

轉載自   Java中執行緒池,你真的會用嗎 在《深入原始碼分析Java執行緒池的實現原理》這篇文章中,我們介紹過了Java中執行緒池的常見用法以及基本原理。 在文中有這樣一段描述: 可以通過Executors靜態工廠構建執行緒池,但一般不建議這樣使用。 關於這個

java執行的生命週期與執行中斷

執行緒池生命週期包括: RUNNING:接收新的任務並處理佇列中的任務 SHUTDOWN:不接收新的任務,但是處理佇列中的任務 STOP:不接收新的任務,不處理佇列中的任務,同時中斷處理中的任務 TIDYING:所有的任務處理完成,有效的執行緒數是0 TE

Java執行,你真的瞭解會用嗎

在《 深入原始碼分析Java執行緒池的實現原理 》這篇文章中,我們介紹過了Java中執行緒池的常見用法以及基本原理。 在文中有這樣一段描述: 可以通過Executors靜態工廠構建執行緒池,但一般不建議這樣使用。 關於這個問題,在那篇文章中並沒有深入的展開。作者之所以這

Java執行,你真的會用嗎?

  我騎著小毛驢,喝著大紅牛哇,哩個啷格里格朗,別問我為什麼這木開心,如果活著不是為了浪蕩那將毫無意義      今天來捋一捋我們平日經常用的instanceof和typeof的一些小問題      typeof:      typeof裡面是由一個小坑的  我們今天著重來研

Java執行ThreadPoolExecutor原理探究

一、 前言 執行緒池主要解決兩個問題:一方面當執行大量非同步任務時候執行緒池能夠提供較好的效能,,這是因為使用執行緒池可以使每個任務的呼叫開銷減少(因為執行緒池執行緒是可以複用的)。另一方面執行緒池提供了一種資源限制和管理的手段,比如當執行一系列任務時候對執行緒的管理,每個ThreadPool

Java高併發程式設計(十一):Java執行

在開發過程中,合理地使用執行緒池能夠帶來3個好處。 降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷燬造成的消耗。 提高響應速度。當任務到達時,任務可以不需要等到執行緒建立就能立即執行。 提高執行緒的可管理性。執行緒是稀缺資源,如果無限制地建立

實現Spring整合執行ThreadPoolTaskExecutor

在之前的專案裡面用到了執行緒池的功能,這裡記錄一下。 我們為什麼要實現執行緒池,下面是我百度查的: 在Java中,如果每當一個請求到達就建立一個新執行緒,開銷是相當大的。在實際使用中,每個請求建立新執行緒的伺服器在建立和銷燬執行緒上花費的時間和消耗的系統資源,甚至可能要比花

spring 配置 執行並使用 springtest 進行測試

    在 applicationContext.xml 中配置spring執行緒池: <!-- 包路徑掃描 --> <context:component-scan base-package="spring.task"/>

java執行的幾種實現方式

1、執行緒池簡介:     多執行緒技術主要解決處理器單元內多個執行緒執行的問題,它可以顯著減少處理器單元的閒置時間,增加處理器單元的吞吐能力。         假設一個伺服器完成一項任務所需時間為:T1 建立執行緒時間,T2 線上程中執行任務的時間,T3 銷燬執

java執行ExecutorService 執行管理

 程式碼: package com.bob.test; import java.util.concurrent.ExecutorService; import java.util.concurren

Spring ThreadPoolTaskExecutor執行

1:首先配置執行緒池(在spring配置檔案中配置,我是在applicationContex

Spring執行和JDK的執行的區別?

API 文件中很清楚,SpringFrameWork 的 ThreadPoolTaskExecutor 是輔助 JDK 的 ThreadPoolExecutor 的工具類,它將屬性通過 JavaBeans 的命名規則提供出來,方便進行配置。 1.ThreadPoolEx

Spring Boot執行配置使用

首先,我們要了解什麼是執行緒池,執行緒,大家應該都不陌生,我們可以把一個介面處理的單個任務當做一個執行緒,比如上傳檔案,呼叫介面,上傳檔案,上傳完成。 這時會初始化一個執行緒,等待上傳結束,執行緒銷燬 。 但是這樣會頻繁的建立銷燬執行緒,為了不浪費更多的系統資源,我們使用執行

spring整合執行

定義兩個類: /**  * 執行緒池配置類  * @author Administrator  *  */ public class ThreadPoolConfig {//池中所儲存的執行緒數,包括空閒執行緒。     private int corePoolSize;

java.util.concurrent包執行Executors的使用

執行緒池的概念與Executors類的使用 (1)建立固定大小的執行緒池–當有多個任務時,會先按照執行緒池中的資料執行任務,其他任務處於等待過程中,等執行完這批任務後再執行下批任務。 (2)建立快