首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
并发编程
订阅
javacodecreeks
更多收藏集
微信扫码分享
微信
新浪微博
QQ
24篇文章 · 0订阅
浅析synchronized底层实现与锁升级过程
在Java中,synchronized关键字是用来控制线程同步的。就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。 那么synchronized具体是怎么做到线程同步的呢?还有锁升级过程的过程是怎样的的?我们来探讨一下。 线程2将count减到了9…
全新的postmessage库特性介绍与源码解析
postMessage 提供了底层通信能力,有不少优秀的开源库在此基础上进行了封装,以供开发者更便捷地使用。比如1.4k start 的 postmate 就提供了父页面与 iframe 子页面间基于 Promise 的 postmessage 通信能力封装。 而这篇文章要介绍…
JAVA多线程看这一篇就足够了(超详细总结)
前言多线程编程,是“多核时代”提升计算性能的关键因素之一,亦属于开发者必须掌握的核心技能。本片文章小编带你从六个知识点剖析JAVA多线程,将针对于Java多线程编程,进行基础的阐述!主要内容包括:一、
基础篇:异步编程不会?我教你啊!CompletableFuture(JDK1.8)
以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建。如果需要返回值,则是调用Executor.submit获取Future。但是多个线程存在依赖组合,我们又能怎么办?可使用同步组件CountDownLatch、CyclicBarrier等;其实有简…
不得不知的ReentrantLock源码
处理好线程之间的同步问题一直都是开发界的难题,我们最常用的就是synchronized关键字,synchronized常用在方法上或者使用synchronized块. 而且synchronized在JDK1.6之后得到了很多性能上的改进,,当然平常我们也鼓励尽量多使用synch…
简单聊一聊FutureTask的实现
FutureTask是一种支持取消的异步任务包装类,也就是说FutureTask执行的时候不立即返回结果,自己可以通过异步调用get方法获取结果,也可以中途调用cancel方法取消任务。而且必须要知道的就是FutureTask只是任务的包装类,并不是真正的任务类。 Future…
Java 多线程的竞争条件、互斥和同步
在《操作系统精髓与设计原理》一书中,对竞争条件的定义如下:多个进程或线程同时读写某些数据项,导致最后的结果取决于这些进程中指令的执行顺序。 也就是说,竞争条件下,计算结果由单线程下的确定状态,变成了多线程下的不确定状态。这个不确定性产生的原因是什么?我们下面来讨论。 在只有单个…
Java 8 并发: Threads 和 Executors
Java 5 初次引入了Concurrency API,并在随后的发布版本中不断优化和改进。这篇文章的大部分概念也适用于老的版本。我的代码示例主要聚焦在Java 8上,并大量适用 lambda 表达式和一些新特性。如果你还不熟悉 lambda 表达式,建议先阅读 Java 8 …
JAVA 中的 CAS
CAS 是现代操作系统,解决并发问题的一个重要手段,最近在看 eureka 的源码的时候。遇到了很多 CAS 的操作。今天就系统的回顾一下 Java 中的CAS。 当多个线程同时对某个资源进行CAS操作,只能有一个线程操作成功,但是并不会阻塞其他线程,其他线程只会收到操作失败的…
简单聊一聊ThreadPoolExecutor
线程池的诞生于JDK1.5,主要的目的是解决我们在使用线程的时候通常都是重复的创建和销毁,为了让线程能够得到复用,避免我们重复的创建和销毁,提高我们的效率,降低内存的开销。没错又是Doug Lea大神又搞出了线程池这一强力工具。 我们最熟悉的线程池使用案例应该就是数据库连接池,…