一篇文章搞定Java多线程和高并发问题

进程是操作系统进行资源分配的最小单元,线程是操作系统进行运算调度的最小单元是线程,其实,在Linux中线程也可以看作是一种轻量级的进程,那么线程是包含于进程之中的,是进程中实际的运作单位;同一进程中的多个线程共用同一块内存空间,而不同的线程又拥有独立的栈内存用以存放线程本地数据。
现在的计算机动辄就是多处理器核心的,而每一个线程同一时间只能运行在一个处理器上,那么如果程序采用单线程进行开发,那么就不能充分利用多核处理器带来的优势;所以为了充分利用多核处理器的资源来提高程序的执行性能,多线程编程变得越来越重要,比如对于计算密集型任务,使用一个线程可能需要100秒,但是,如果使用十个线程共同完成,那么需要的时间可能只有10秒左右;如果你是使用Java开发程序的,那么你很幸运,因为Java是内置多线程编程模型的;但是,想要使用好多线程这把利刃,还需要掌握好多线程编程的基础知识,从而做到得心应手地使用多线程进行高性能程序的开发!
多线程的使用场景:

  • 程序中出现需要等待的操作,比如网络操作、文件IO等,可以利用多线程充分使用处理器资源,而不会阻塞程序中其他任务的执行;
  • 程序中出现可分解的大任务,比如耗时较长的计算任务,可以利用多线程来共同完成任务,缩短运算时间
  • 程序中出现需要后台运行的任务,比如一些监测任务、定时任务,可以利用多线程来完成

线程的实现方式:

  1. 继承Thread类
  2. 实现Runnable接口
  3. 实现Callable接口
    线程的状态转换:
    线程的状态转换
    线程池
    JDK1.5之后,提供了线程的线程池,Java里面线程池的顶级接口是Executor,是一个执行线程的工具,线程池的接口是ExecutorService.
    Executor接口执行已提交的Runnable任务的对象。ExecutorService接口,提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行而生成的Future的方法。
    Java高并发
    同步就是一件事,一件事情一件事的做。
    异步就是,做一件事情,不引响做其他事情。
    并发编程
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值