首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
线程
订阅
juejinshell
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
学会多线程编程看这篇
1. Java程序运行原理 1. JVM运行时数据区 JVM运行时数据区可以分为两部分:线程共享部分和线程独占部分。线程共享部分主要包括方法区和堆内存;线程独占部分主要包括虚拟机栈,本地方法栈和程序计数器。 线程共享:所有线程都能访问这块内存数据,随虚拟机或GC而创建和销毁。 …
java并发之计数器CountDownLatch原理
CountDownLatch顾名思义,count + down + latch = 计数 + 减 + 门闩(这么拆分也是便于记忆=_=) 可以理解这个东西就是个计数器,只能减不能加,同时它还有个门闩的作用,当计数器不为0时,门闩是锁着的;当计数器减到0时,门闩就打开了。 如果你…
并发编程 | 锁详解:AQS,Lock,ReentrantLock,ReentrantReadWriteLock
ReentrantLock重入锁,内部AQS的实现是基于独占式获取/释放同步状态的。我们学习一下ReentrantLock的实现原理来进一步加深对AQS的理解
一文搞懂四种同步工具类
CountDownLatch相当于一个门闩,门闩上挂了N把锁。只有N把锁都解开的话,门才会打开。怎么理解呢?我举一个赛跑比赛的例子,赛跑比赛中必须等待所有选手都准备好了,裁判才能开发令枪。选手才可以开始跑。CountDownLatch当中主要有两个方法,一个是await()会挂…
面试必备:Java线程池解析
掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起分析学习吧。 面试问题2:按线程池内部机制,当提交新任务…
Java并发编程之volatile
上一篇文章中我们介绍了 Synchronzied ,接下来我们来介绍 volatile。 我们知道 Java 内存模型有三大特性,有序性、可见性、原子性。 我们首先来谈一谈有序性。 那么什么是有序性呢?Talk is cheap,show me the code 我们直接来看代…
血洗多线程,抱得 offer 归
工作和面试之中,遇到了很多多线程问题。这里我总结了一下,希望对你有所帮助。本篇内容,基本上都是一些反例,有些很低级但常见。 当然,面试时拿来装逼用,也是极好的。 先来10个。 现象: 系统资源耗尽,进程僵死。 原因: 每次方法执行,都new一个线程池。 现象: 某个线程一直持有…
线程池没你想的那么简单(续)
线程池基本调度功能。 线程池自动扩容缩容。 队列缓存线程。 关闭线程池。 这些功能,最后也留下了三个待实现的 features 。 执行带有返回值的线程。 这次就实现这三个特性来看看 j.u.c 中的线程池是如何实现这些需求的。 线程池中的任务执行完毕后再通知主线程做其他事情,…
对volatile的理解
JMM(java内存模型 Java Memory Model)本身是一种抽象的概念,描述一组规则后规范通过这组规范定义了程序中各个变量(包括实例字段,静态变量和组成数组对象的元素)的访问方式。 由于JMM运行程序的实体是线程,而每个线程创建JVM都会为其创建一个工作内存,工作内…
被大厂面试官连环炮轰炸的ThreadLocal (吃透源码的每一个细节和设计原理)
ThreadLocal 是面试过程中非常高频的一个类,这类的复杂程度绝对是可以带出一系列连环炮的面试轰炸。biu biu biu ~~~~. 一直觉得自己对这个类很了解了,但是直到去看源码,接二连三的技术浮出水面(弱引用,避免内存溢出的操作,开放地址法解决hash 冲突,各种内…