Administrator
Published on 2021-12-15 / 147 Visits
0
0

JUC之基础入门

JUC之基础入门篇

为什么多线程极其重要

  • 摩尔定律失效
  • 在主频不再提高且核数在不断增加的情况下,要想让程序更快就要用到并行或并发编程
  • 高并发系统,异步 + 回调等生产需求

多线程相关概念

进程

  • 是程序的⼀次执行,是系统进行资源分配和调度的独⽴单位,每⼀个进程都有它自己的内存空间和系统资源

线程

  • 在同⼀个进程内又可以执行多个任务,而这每⼀个任务我们就可以看做是⼀个线程

管程

  • Monitor 其实是一种同步机制,他的义务是保证(同一时间)只有一个线程可以访问被保护的数据和代码
  • JVM中同步是基于进入和退出监视器对象 (Monitor,管程对象) 来实现的,每个对象实例都会有一个Monitor对象
  • Monitor对象会和 Java 对象一同创建并销毁,它底层是由C++语言来实现的

用户线程和守护线程

  • 守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程
  • 用户线程是系统的工作线程,它会完成这个程序需要完成的业务操作
  • 当程序中所有用户线程执行完毕之后,不管守护线程是否结束,系统都会自动退出
  • 设置守护线程,需要在 start() 方法之前进行

Comment