這篇文章主要介紹springmvc如何配置線程池Executor做多線程并發(fā)操作,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),上千多家客戶的共同信賴。提供成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、外鏈、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
加載xml文件
在ApplicationContext.xml文件里面添加
xmlns:task="http://www.springframework.org/schema/task"
xmlns文件并且xsi:schemaLocation中添加
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd
在spring中配置Executor
在ApplicationContext.xml文件里面添加
在dbconfig.properties添加
maxOpenPreparedStatements=20 removeAbandoned=true removeAbandonedTimeout=1800 logAbandoned=true
這是分別對(duì)線程池做配置
添加依賴注入
在所需要的service或者controller類里面添加
@Resource(name = "taskExecutor") private TaskExecutor taskExecutor;
使用線程池進(jìn)行并發(fā)操作
代碼如下
taskExecutor.execute(new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { //要進(jìn)行的并發(fā)操作 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } });
提示
注意在線程中操作變量時(shí)候變量的作用域范圍。需要在這個(gè)controller或者sevice中聲明變量如下
@Controller public class IndexController { int studentscount = 0; @RequestMapping(value = "/index.html") public ModelAndView goIndex() { logBefore(logger, "列表Center"); ModelAndView mv = this.getModelAndView(); taskExecutor.execute(new Runnable() { @Override public void run() { // TODO Auto-generated method stub // 得到所有學(xué)生人數(shù) try { studentscount = coursesService.getStudentCount(pd); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); mv.addObject("studentscount", studentscount); mv.setViewName("common/index"); return mv; }
以上是“springmvc如何配置線程池Executor做多線程并發(fā)操作”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!