多线程
文章平均质量分 77
QXF1122
这个作者很懒,什么都没留下…
展开
-
ReentrantLock的源码分析
J.U.C简介 Java.util.concurrent 是在并发编程中比较常用的工具类,里面包含很多用来在并发 场景中使用的组件。比如线程池、阻塞队列、计时器、同步器、并发集合等等。并发包的作者是大名鼎鼎的 Doug Lea。我们在接下来的课程中,会去剖析一些经典的比较常用的组件的设计思想。 LOCK Lock 在 J.U.C 中是最核心的组件,前面我们讲synchronized的时候说过,锁最重要的特性就是解决并发安全问题。为什么要以 Lock 作为切入点呢?如果有同学看过 J.U.C 包中的所有组件,原创 2021-03-16 16:06:09 · 130 阅读 · 0 评论 -
synchronized锁的升级3-重量级锁及回顾线程的竞争机制
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例原创 2021-03-16 11:15:57 · 196 阅读 · 0 评论 -
synchronized锁的升级2-轻量级锁
二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore') import ssl ssl._create_default_https_context = ssl._create_unverified_context 2.读入数据 代码如原创 2021-03-16 11:10:18 · 98 阅读 · 0 评论 -
synchronized锁的升级1-偏向锁
在分析这几种锁的区别时,我们先来思考一个问题: 使用锁能够实现数据的安全性,但是会带来性能的下降。 不使用锁能够基于线程并行提升程序性能,但是却不能保证线程的安全性。 这两者之间似乎是没有办法达到既能满足性能也能满足安全性的要求。 hotspot虚拟机作者发现,大部分情况下,加锁的代码不仅不存在多线程竞争,而且总是由同一个线程多次获得。 所以基于这样一个概率,synchronized在JDK1.6之后做了一些优化,为了减少获得锁和释放锁带来的性能开销, 引入了偏向锁、轻量级锁的概念。 因此,在synchro原创 2021-01-06 11:44:17 · 98 阅读 · 0 评论