java多线程及线程池的介绍

**

多线程

**

一,创建线程的方法
  1. 继承Thread类,重写run方法
  2. 实现Runable接口,重写run方法
  3. 实现Callable接口,重写call方法

Runable接口run方法无返回值值,只能抛出运行司异常,且无法捕获处理
Callable接口call方法有返回值,允许抛出异常,可以捕获异常信息

二,线程的生命周期
  1. new 新建状态。生成线程对象,无调用start方法,这时线程处于创建状态
  2. Runable 就绪状态。调用start()方法之后-----》就绪状态
  3. Running 运行状态。线程调度程序将处于就绪状态的线程设为当前线程进入运行状态----》执行run()中的代码
  4. Blocked 阻塞状态。线程因为某种原因放弃cpu的使用权,暂时停止运行。
    (1) wait()方法 等待。让线程等待某工作的完成
    (2) sleep()方法 超时等待。
    sleep方法或者I/O请求时----》阻塞状态
    sleep状态超时,I/O处理完毕----》就绪状态
    唤醒方法:notify(),notifyAll()方法----》就绪状态
  5. Dead 死亡状态。线程正常执行完毕活线程被提前终止----》线程销毁,释放资源。

多线程

线程池的使用

public class TaskTaskDetailSVImpl implements ITaskTaskDetailSV{
        private static final Logger LOGGER = LoggerFactory.getLogger(TaskTaskDetailSVImpl.class);
        private ExecutorService executorService = new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>(),new NgscsThreadFactory());
        public Result saveTaskDe(){
            Result result = new Result();
            executorService.execute(new Runnable() {
            public void run() {
              saveTaskDetail();
           }
     });
     result.setReturnMessage("处理完成");
     return result;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值