随笔分类 -  多线程

Java并发编程:深入剖析ThreadLocal
摘要:想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对Thre 阅读全文

posted @ 2018-08-03 15:13 夜的第八章 阅读(119) 评论(0) 推荐(0)

BlockingQueue(阻塞队列)详解
摘要:转载:https://www.cnblogs.com/tjudzj/p/4454490.html 一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的 阅读全文

posted @ 2018-07-31 14:36 夜的第八章 阅读(158) 评论(0) 推荐(0)

Java并发—–深入分析synchronized的实现原理
摘要:记得刚刚开始学习Java的时候,一遇到多线程情况就是synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着我们学习的进行我们知道synchronized是一个重量级锁,相对 阅读全文

posted @ 2018-07-23 15:36 夜的第八章 阅读(320) 评论(0) 推荐(0)

深入浅出ConcurrentHashMap1.8
摘要:转载:https://www.jianshu.com/p/c0642afe03e0 好文 关于文章中的疑问:为什么要构造一个反序链表,放在nextTable的i+n的位置上呢,在《深入分析ConcurrentHashMap1.8的扩容实现 》一文中进行了详细分析。 注意:ConcurrentHash 阅读全文

posted @ 2018-06-09 17:24 夜的第八章 阅读(1447) 评论(0) 推荐(0)

ConcurrentHashMap JDK1.8
摘要:转载:https://blog.csdn.net/u010412719/article/details/52145145 注意:ConcurrentHashMap中的get方法中,没有进行同步,理由可能如下: 代码中会先执行 e = tabAt(tab, (n - 1) & h)),该方法是通过CA 阅读全文

posted @ 2018-06-07 21:29 夜的第八章 阅读(268) 评论(0) 推荐(0)

synchronized修饰普通方法和静态方法
摘要:首先,要知道,synchronized关键字修饰普通方法时,获得的锁是对象锁,也就是this。而修饰静态方法时,锁是类锁,也就是类名.class。 synchronized修饰普通方法 Synchronized修饰普通方法时,锁是对象锁(this)。 当该类中有多个普通方法被Synchronized 阅读全文

posted @ 2018-06-07 20:48 夜的第八章 阅读(8168) 评论(0) 推荐(1)

Java多线程系列--CopyOnWriteArraySet
摘要:转载:http://www.cnblogs.com/skywang12345/p/3498497.html 概要 本章是JUC系列中的CopyOnWriteArraySet篇。接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一 阅读全文

posted @ 2018-06-05 21:32 夜的第八章 阅读(21902) 评论(0) 推荐(2)

Java多线程系列--“JUC集合”02之 CopyOnWriteArrayList
摘要:转载:http://www.cnblogs.com/skywang12345/p/3498483.html 概要 本章是"JUC系列"的CopyOnWriteArrayList篇。接下来,会先对CopyOnWriteArrayList进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例 阅读全文

posted @ 2018-06-03 21:18 夜的第八章 阅读(541) 评论(0) 推荐(0)

ThreadPoolExecutor实现原理
摘要:转载:https://blog.csdn.net/yanyan19880509/article/details/52718497 前言 做java开发的,一般都避免不了要面对java线程池技术,像tomcat之类的容器天然就支持多线程。即使是做偏后端技术,如处理一些消息,执行一些计算任务,也经常需要 阅读全文

posted @ 2018-06-03 15:07 夜的第八章 阅读(245) 评论(0) 推荐(0)

轻松掌握java读写锁(ReentrantReadWriteLock)的实现原理
摘要:转载:https://blog.csdn.net/yanyan19880509/article/details/52435135 前言 前面介绍了java中排它锁,共享锁的底层实现机制,本篇再进一步,学习非常有用的读写锁。鉴于读写锁比其他的锁要复杂,不想堆一大波的文字,本篇会试图图解式说明,把读写锁 阅读全文

posted @ 2018-06-03 14:42 夜的第八章 阅读(181) 评论(0) 推荐(0)

深入理解java线程池—ThreadPoolExecutor
摘要:几句闲扯:首先,我想说java的线程池真的是很绕,以前一直都感觉新建几个线程一直不退出到底是怎么实现的,也就有了后来学习ThreadPoolExecutor源码。学习源码的过程中,最恶心的其实就是几种状态的转换了,这也是ThreadPoolExecutor的核心。花了将近小一周才大致的弄明白Thre 阅读全文

posted @ 2018-06-02 20:47 夜的第八章 阅读(250) 评论(0) 推荐(0)

深入理解读写锁—ReadWriteLock源码分析
摘要:转载:https://blog.csdn.net/qq_19431333/article/details/70568478 ReadWriteLock管理一组锁,一个是只读的锁,一个是写锁。读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的。 所有读写锁的实现必须确保写操作对读操作的内存影响。 阅读全文

posted @ 2018-06-02 16:20 夜的第八章 阅读(313) 评论(0) 推荐(0)

java多线程之ReentrantLock
摘要:前言 相信学过java的人都知道 synchronized 这个关键词,也知道它用于控制多线程对并发资源的安全访问,兴许,你还用过Lock相关的功能,但你可能从来没有想过java中的锁底层的机制是怎么实现的。如果真是这样,而且你有兴趣了解,今天我将带领你轻松的学习下java中非常重要,也非常基础的可 阅读全文

posted @ 2018-05-30 22:01 夜的第八章 阅读(395) 评论(0) 推荐(0)

CAS原理分析
摘要:一、锁机制 常用的锁机制有两种: 1、悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。悲观锁的实现,往往依靠底层提供的锁机制;悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。 2、乐观锁:假设不会发生并发冲突,每次不加锁而是假设没有冲突而去完成某项操作,只在提交操作时检查 阅读全文

posted @ 2018-05-30 20:56 夜的第八章 阅读(1293) 评论(0) 推荐(0)

竞态条件与临界区
摘要:在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。如,同一内存区(变量,数组,或对象)、系统(数据库,web services等)或文件。实际上,这些问题只有在一或多个线程向这些资源做了写操作时才有可能发生,只要资源没有发生变化,多个线程读取相同的资源就是安全的。 多线程同 阅读全文

posted @ 2018-05-24 11:19 夜的第八章 阅读(888) 评论(0) 推荐(0)

多线程体系
摘要:图片来源:https://yq.aliyun.com/articles/61960?utm_campaign=wenzhang&utm_medium=article&utm_source=QQ-qun&utm_content=m_10571 阅读全文

posted @ 2018-05-19 19:38 夜的第八章 阅读(246) 评论(0) 推荐(0)

线程池原理
摘要:读完本文你将了解: 什么是线程池 线程池的处理流程 保存待执行任务的阻塞队列 创建自己的线程池 JDK 提供的线程池及使用场景 newFixedThreadPool newSingleThreadExecutor newCachedThreadPool newScheduledThreadPool 阅读全文

posted @ 2018-04-11 16:27 夜的第八章 阅读(216) 评论(0) 推荐(0)

深入浅出Java concurrent
摘要:看 :http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 阅读全文

posted @ 2018-03-28 20:15 夜的第八章 阅读(117) 评论(0) 推荐(0)

Java多线程学习(吐血超详细总结)
摘要:林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包 阅读全文

posted @ 2018-03-05 18:36 夜的第八章 阅读(375) 评论(0) 推荐(0)

ConcurrentHashMap源码阅读
摘要:转载:http://www.cnblogs.com/butterfly100/p/8019491.html 1. 前言 HashMap是非线程安全的,在多线程访问时没有同步机制,并发场景下put操作可能导致同一数组下的链表形成闭环,get时候出现死循环,导致CPU利用率接近100%。 HashTab 阅读全文

posted @ 2017-12-11 09:17 夜的第八章 阅读(236) 评论(0) 推荐(0)

导航