博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring配置线程池
阅读量:6276 次
发布时间:2019-06-22

本文共 1728 字,大约阅读时间需要 5 分钟。

  hot3.png

 
spring提供了线程池的支持
查看基本
 
先是一个线程 ThreadTransCode.java
package com.enorth.lichen.transcode;
public class ThreadTransCode implements Runnable{ 
    
  @Override
   public void run() {
    System.out.println( "转码开始.............."); 
  }
}
 
在spring配置文件中添加线程池的配置信息
< bean id ="taskExecutor"
     class ="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >
     < property name ="corePoolSize" value ="3" />
     < property name ="keepAliveSeconds" value ="200" />
     < property name ="maxPoolSize" value ="5" />
     < property name ="queueCapacity" value ="25" />
   </ bean >
 
在action中添加注入
< bean id ="saveVideoAction"
       class ="com.enorth.lichen.action.video.SaveVideoAction"
       scope ="prototype" >
       < property name ="videoService" >
         < ref bean ="videoService" />
       </ property >
       < property name ="groupService" >
         < ref bean ="groupService" />
       </ property >
      
<property name="taskExecutor">
        <ref bean="taskExecutor" />
      </property>
     </ bean >
 
在action中调用
private TaskExecutor taskExecutor;    
public TaskExecutor getTaskExecutor() {    
         return taskExecutor;    
    }    
public void setTaskExecutor(TaskExecutor taskExecutor) {    
         this.taskExecutor = taskExecutor;    
    }    
public String execute() throws Exception {
for( int k = 0; k < 2; k++) {    
        taskExecutor.execute( new ThreadTransCode());    
    }
return SUCCESS;
}
 
以上就可以用spring实现java线程池的使用...
遗憾的是, 我在用线程池执行flv的转码线程时, 发现只有停掉tomcat才能自动执行转码的操作, 其他简单操作的多线程都是可以的. 原因不明, 难道转码的线程太耗资源?
 
 
日日日.问题解决了.原因是
死锁...实际转码的线程在tomcat停掉后就能自动运行已经说明了,我日竟然没注意...
线程池 ThreadPool.java
   public static ExecutorService exec = Executors.newFixedThreadPool(1);
    
   public static
synchronized void trans(String videoPath,String targetPath){
    ThreadTransCode trans= new ThreadTransCode(videoPath,targetPath);
    exec.execute(trans);
  }
 
 
 

本文出自 “” 博客,请务必保留此出处

转载于:https://my.oschina.net/lichen/blog/264934

你可能感兴趣的文章
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>