多线程
迷失的小小小鸟
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ThreadLocal源码解读
1. 背景ThreadLocal源码解读,网上面早已经泛滥了,大多比较浅,甚至有的连基本原理都说的很有问题,包括百度搜索出来的第一篇高访问量博文,说ThreadLocal内部有个map,键为线程对象,太误导人了。ThreadLocal非常适合对Java多线程编程感兴趣的程序员作为入门类阅读,原因两方面:加上注释源码也不过七八百行。 结构清晰,代码简洁。本文重点导读ThreadLoc...转载 2020-03-23 14:57:10 · 270 阅读 · 0 评论 -
多线程同步锁synchronized(对象锁与全局锁)总结
<div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-833878f763.css"> ...转载 2020-03-20 18:32:06 · 212 阅读 · 0 评论 -
Lock锁的使用
在Java多线程中,可以使用synchronized关键字实现线程之间的同步互斥,在jdk1.5后新增的ReentrantLock类同样可达到此效果,且在使用上比sy...转载 2020-03-20 12:38:03 · 391 阅读 · 0 评论 -
Lock和synchronized的区别和使用
Java并发编程:Lock今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章。 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探...原创 2020-03-19 15:40:09 · 153 阅读 · 0 评论 -
Java多线程编程—锁优化
正文并发环境下进行编程时,需要使用锁机制来同步多线程间的操作,保证共享资源的互斥访问。加锁会带来性能上的损坏,似乎是众所周知的事情。然而,加锁本身不会带来多少的性能消耗,性能主要是在线程的获取锁的过程。如果只有一个线程竞争锁,此时并不存在多线程竞争的情况,那么JVM会进行优化,那么这时加锁带来的性能消耗基本可以忽略。因此,规范加锁的操作,优化锁的使用方法,避免不必要的线程竞争,不仅可以提高程序...转载 2020-03-18 23:53:08 · 117 阅读 · 0 评论 -
为什么阿里巴巴要禁用Executors创建线程池?
看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,通过源码分析禁用的原因写在前面首先感谢大家在盖楼的间隙阅读本篇文章,通过阅读本篇文章你将了解到:线程池的定义 Executors创建线程池的几种方式 ThreadPoolExecutor对象 线程池执行任务逻辑和线程池参数的关系 Executo...转载 2020-03-17 23:55:29 · 127 阅读 · 0 评论 -
Java细粒度锁实现的3种方式
最近在工作上碰见了一些高并发的场景需要加锁来保证业务逻辑的正确性,并且要求加锁后性能不能受到太大的影响。初步的想法是通过数据的时间戳,id等关键字来加锁,从而保证不同类型数据处理的并发性。而java自身api提供的锁粒度太大,很难同时满足这些需求,于是自己动手写了几个简单的扩展…1. 分段锁借鉴concurrentHashMap的分段思想,先生成一定数量的锁,具体使用的时候再根据key...原创 2020-03-16 22:55:52 · 317 阅读 · 0 评论 -
什么是死锁?如何避免死锁?
一、定义 线程死锁是指由于两个或者多个线程互相...原创 2020-03-16 21:20:47 · 712 阅读 · 0 评论 -
Java通过锁的顺序避免死锁
例子银行账户转账问题,两个用户转账的话,如果采用...原创 2020-03-16 12:56:35 · 422 阅读 · 0 评论
分享