首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
多线程
订阅
firename
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
反制面试官 | 14张原理图 | 再也不怕被问 volatile!
这一篇也算是Java并发编程的开篇,看了很多资料,但是轮到自己去整理去总结的时候,发现还是要多看几遍资料才能完全理解。还有一个很重要的点就是,画图是加深印象和检验自己是否理解的一个非常好的方法。 这是一份精心总结的Java内存模型思维导图,拿去不谢。 JMM是Java内存模型,…
图解进程线程、互斥锁与信号量-看完不懂你来打我
在上学的时候,老师讲到进程与线程的时候可能是这样讲的:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单元,是应用程序运行的载体。线程是程序执
5000字 | 24张图带你彻底理解Java中的21种锁
乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。 Java中的乐观锁: CAS,比较并替换,比较当前值(主内存中…
AQS基础——多图详解CLH锁的原理与实现
自旋锁说白了也是一种互斥锁,只不过没有抢到锁的线程会一直自旋等待锁的释放,处于busy-waiting的状态,此时等待锁的线程不会进入休眠状态,而是一直忙等待浪费CPU周期。
定时任务最简单的3种实现方法(超实用)
定时任务在实际的开发中特别常见,比如电商平台 30 分钟后自动取消未支付的订单,以及凌晨的数据汇总和备份等,都需要借助定时任务来实现,那么我们本文就来看一下定时任务最简单的几种实现方式。 Timer 类实现定时任务虽然方便,但在使用时需要注意以下问题。 从上述结果中可以看出,当…
项目中有用过锁吗?能解释一下什么是AQS(AbstractQueuedSynchronizer)吗?
锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,如读写锁)。在以前,Java程序是靠synchronized来实现锁功能的,而在Java SE 5之后,并发包中新增了Lock接口(以及相关实现…
基于AQS实现自己的同步工具
这篇文章,基于子路老师的AQS,在这之前我对AQS,对它的源码大部分是似懂非懂的感觉,但是看了子路老师的文章,好像顿悟了,哈哈,其实怎么说呢?AQS这个大家一定要会,并发编程的基础就是AQS,只要你对并发有点点基础,小六六这篇文档保证让你有对并发编程,对AQS有不一样的认知。 …
没内鬼,来点干货!volatile和synchronized
运行这段代码我们可能会得到一个匪夷所思的结果:我们获得的单例对象是未初始化的。为什么会出现这种情况?因为指令重排 首先要明确一点,同步代码块中的代码也是能够被指令重排的。然后来看问题的关键 由于步骤2,3交换不会改变单线程环境下的执行结果,故而这种重排序是被允许的。也就是我们在…
面试必备:Java线程池解析
掌握线程池是后端程序员的基本要求,相信大家求职面试过程中,几乎都会被问到有关于线程池的问题。我在网上搜集了几道经典的线程池面试题,并以此为切入点,谈谈我对线程池的理解。如果有哪里理解不正确,非常希望大家指出,接下来大家一起分析学习吧。 面试问题2:按线程池内部机制,当提交新任务…
Java:并发不易,先学会用
我从事Java编程已经11年了,绝对是个老兵;但对于Java并发编程,我只能算是个新兵蛋子。我说这话估计要遭到某些高手的冷嘲热讽,但我并不感到害怕。 因为我知道,每年都会有很多很多的新人要加入Java编程的大军,他们对“并发”编程中遇到的问题也会有感到无助的时候。而我,非常乐意…