首页 > 其他 > 详细

并发编程:基础知识

时间:2020-07-10 00:06:08      阅读:70      评论:0      收藏:0      [点我收藏+]

为什么需要多线程

  • 单核CPU->多核CPU->并行计算
  • 实时性需求->线程是轻量级的进程,任务调度的最小单位,资源消耗比进程低
  • 充分利用CPU资源,提升吞吐量

线程在Java中的应用

四种方式创建多线程:

  • 继承Thread类(本质上是实现了Runnable接口)
  • 实现Runnable接口扔到Thread构造方法(无返回值)
  • 实现Callable接口/Future扔到Thread构造方法(有返回值)
  • 线程池ThreadPool
    最终调用Thread.start()方法启动线程。

多线程适用场景

线程池:资源管理、节省了创建和销毁线程的开销、提高响应速度
IO阻塞

线程的生命周期

  • NEW:刚创建未启动
  • RUNNABLE:可运行:就绪(可以抢时间片)和运行中(已经拿到了时间片)来回切换
  • BLOCKED:等待锁
  • WAITING:调用wait/join/park等方法的时候,调用notify/nofityAll/unpark返回
  • TIMED_WAITNG:调用wait(参数)、sleep(参数)等
  • TERMINATED:线程结束

join()

  • join()方法是调用join()的线程先执行!!理解为插队,谁join(),则谁插队先执行!当前的线程会阻塞住。

并发编程:基础知识

原文:https://www.cnblogs.com/fcb-it/p/13276720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!