首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
线程同步和锁
订阅
小骷髅
更多收藏集
微信扫码分享
微信
新浪微博
QQ
21篇文章 · 0订阅
悲观的并发策略——synchronized互斥锁
互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁释放后才能重新进行竞争。 对于Java开发人员,最熟悉的肯定就是用synchronized关键词完成锁功能,在涉及到多线程并发时,对于一些变量,…
Java并发之CyclicBarrier
讲解了CyclicBarrier类的基本使用。
Java可重入锁详解
在java中,锁是实现并发的关键组件,多个线程之间的同步关系需要锁来保证,所谓锁,其语义就是资源获取到资源释放的一系列过程,使用lock的意图就是想要进入临界区对共享资源执行操作,使用unlock说明线程已经完成了相关工作或者发生了异常从而离开临界区释放共享资源,可以说,在多线…
Java线程的CPU时间片
当前运行线程主动放弃CPU,JVM暂时放弃CPU操作(基于时间片轮转调度的JVM操作系统不会让线程永久放弃CPU,或者说放弃本次时间片的执行权),例如调用yield()方法。 当前运行线程因为某些原因进入阻塞状态,例如阻塞在I/O上。 当前运行线程结束,即运行完run()方法里…
Java锁机制了解一下
其实都比较坑,如果能先系统讲了Synchronized锁机制,接着讲显式Lock锁机制,那就很容易理解了。也不需要跨那么多章节。 synchronized保证了线程的原子性。(被保护的代码块是一次被执行的,没有任何线程会同时访问) synchronized还保证了可见性。(当执…
Java信号量Semaphore详解
Semaphore实现为一种基于计数的信号量,Semaphore管理着一组虚拟的许可集合,这种许可可以作为某种凭证,来管理资源,在一些资源有限的场景下很有实用性,比如数据库连接,应用可初始化一组数据库连接,然后通过使用Semaphore来管理获取连接的许可,任何线程想要获得一个…
一行一行源码分析清楚 AbstractQueuedSynchronizer (三)
这篇文章是 AQS 系列的最后一篇,总算是写完了。第一篇,我们通过 ReentrantLock 公平锁分析了 AQS 的核心,第二篇的重点是把 Condition 说明白,同时也说清楚了对于线程中断的使用。 这篇,我们的关注点是 AQS 最后的部分,共享模式的使用。有前两篇文章的铺垫,剩下的源码分析将会简单很多。 本文先用 CountDownLatch 将共享模式说清楚,然后顺着把其他 AQS 相关的类 CyclicBarrier、Semaphore 的源码一起过一下。
猫头鹰的深夜翻译:使用JAVA CompletableFuture的20例子
这篇博客回顾JAVA8的CompletionStageAPI以及其在JAVA库中的标准实现CompletableFuture。将会通过几个例子来展示API的各种行为。因为CompletableFuture是CompletionInterface接口的实现,所以我们首先要了解该…
不得不知的ReentrantLock源码
处理好线程之间的同步问题一直都是开发界的难题,我们最常用的就是synchronized关键字,synchronized常用在方法上或者使用synchronized块. 而且synchronized在JDK1.6之后得到了很多性能上的改进,,当然平常我们也鼓励尽量多使用synch…