![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 89
熊猫有几种颜色
熊猫还有第三种颜色吗?
展开
-
技术自查第五篇:线程进阶(二)篇
前言 线程的基础知识以及原理,我们都已经学习了一大部分,线程的确会为我们带来好处,但相对应我们需要付出代价,系统资源换取。当大量的线程创建和销毁,无疑消耗大量的资源。 为了应付这种情况,Java就推出线程池。 线程池 为了降低资源的消耗,提高响应速度,使线程可重复使用。 作用 1. 降低资源消耗,线程其实也是一个对象,既然是对象,那就涉及到堆内存,GC回收等等 2. 提高响应速度,通过从线程池获取比创建相乘,无疑是前者速度快 3. 线程可重复使用,从线程池获取线程且使用完毕后,可原创 2021-10-04 16:01:54 · 174 阅读 · 0 评论 -
技术自查番外篇六:死锁及解决办法
前言 线程的六种状态(初始,等待,阻塞,运行,就绪和等待),我们都知道,但实际情况下,会出现这六种状态下的,第七种情况死锁,那么死锁是什么,为什么会发生呢? 先了解下死锁的概念 概念 两个线程同一时间持有自身的锁且互相争夺对方的锁,等待对方锁释放,如果没有外力介入下,这两个线程会一直等待下去。 虽然说一直等待,可以说是等待状态,但由于它们互相持有对方所需的锁,此时就是阻塞状态了。 发生死锁条件 1. 互斥条件 2. 持有并等待状态(持有本身锁且等待对方锁) 3. 不可剥夺条件(不可释放原创 2021-09-30 18:35:39 · 1831 阅读 · 0 评论 -
技术自查番外篇五:join()方法原理
Join()方法 作用是:线程并行改为串行,并等待另一个线程执行结束 这句话看似简单,但实际上也容易 把人误导,认为只变得一个线程在执行所有方式,但实际上不然,本质上还是多个线程同时运行 原因/原理: Join()方法底层调用的是wait()方法,把当前主线程状态更改为等待状态,且等待子线程运行完毕唤醒 源码 public final synchronized void join(long var1) throws InterruptedException { long var原创 2021-09-30 11:56:15 · 206 阅读 · 0 评论 -
技术自查第五篇:线程进阶篇
JAVA的内存模型原创 2021-09-22 23:09:07 · 122 阅读 · 0 评论 -
技术自查第四篇:线程基础篇
前言 面试题中常见的题目之一,很多人都能解答出简单的线程问题。但往往面试官再深入,很多时候就哑口无言。同时线程也是我们开发中常用的,故我们必须要好好学习线程,深入了解原理。 要了解线程,请先记住以下这句话。 锁的机制:基于线程,不是基于方法 线程与进程的关系 https://www.zhihu.com/question/25532384 进程是资源最小调度单位,线程是进程最小调度单位,理论上一个进程可以有无数个线程。 进程之间互不影响,线程之间可以相互影响。 打个比喻: 系统=火车站原创 2021-09-11 23:03:45 · 765 阅读 · 0 评论