- 博客(14)
- 资源 (44)
- 问答 (1)
- 收藏
- 关注
原创 Java多线程编程-(17)-多线程异步调用之Future模式
一、线程计数器回顾在《Java多线程编程-(6)-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier》 这一篇中,我们使用线程计数器的方式实现了在主线程中等待计数的线程执行完之后在执行阻塞等待之后的代码。看段代码回顾一下:public class SummonDragonDemo { private static final int THREAD_COUNT
2017-10-30 10:27:27 16998 3
原创 Java多线程编程-(16)-等待/通知模式接口Condition接口深入分析
前几篇:Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析Java多线程编程-(15)-读写锁ReentrantReadWriteLock深入分析一、Condition接口简介在上述两篇文章中讲解AQS的时候,我们已经知道了同步队列AQS的内部类ConditionObject实现了Condition接口,使用ReentrantLock和Reentra
2017-10-29 10:13:50 5116
原创 Java多线程编程-(15)-读写锁ReentrantReadWriteLock深入分析
上两篇:Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析Java多线程编程-(13)- 关于锁优化的几点建议一、前言上两篇的内容中已经介绍到了锁的实现主要有ReentrantLock和ReentrantReadWriteLock。ReentrantLock是重入锁,顾名思义就是支持重进入的锁,他表示该锁能够支持一个线程对资源的重复加锁,上文中已经提
2017-10-28 15:06:39 1936
原创 Java多线程编程-(14)-无锁CAS操作以及Java中Atomic并发包的“18罗汉”
对于并发控制而言,锁是一种**悲观的策略**。它总是假设每一次的临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果有多个线程同时需要访问临界区资源,就宁可牺牲性能让线程进行等待,所以说锁会阻塞线程执行。 而无锁是一种**乐观的策略**,它会假设对资源的访问是没有冲突的。既然没有冲突,自然不需要等待,所以所有的线程都可以在不停顿的状态下持续执行。那遇到冲突怎么办呢?无锁的策略使用一种叫做**比较交换的技
2017-10-27 14:02:58 2067
原创 Java多线程编程-(13)- 关于锁优化的几点建议
上一篇:Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析一、背景在《 Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力》 这一篇文章中,我们大致介绍了Ja
2017-10-27 12:37:00 6977
原创 Java多线程编程-(12)-Java中的队列同步器AQS和ReentrantLock锁原理简要分析
一、Lock接口在上一篇文章中: Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信 介绍了如何使用Lock实现和synchronized关键字类似的同步功能,只是Lock在使用时需要显式地获取和释放锁,synchronized实现的隐式的获取所和释放锁。虽然Lock它缺少了(通过synchronized块或者方法所提供的)隐式获取释放锁的便捷性,但是却拥有了锁获取与释放的可操作性、
2017-10-25 15:01:34 3732
原创 Java多线程编程-(11)-从volatile和synchronized的底层实现原理看Java虚拟机对锁优化所做的努力
一、背景对于Java来说我们知道,Java代码首先会编译成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上进行执行。Java中所使用的并发机制依赖于JVM的实现和CPU的指令。下边我们对常见的实现同步的两个关键字volatile和synchronized进行底层原理的分析,分析之余我们就会了解到JVM在对锁的优化所做的事情,这样的话我们以后在使用这两
2017-10-24 10:57:11 10882 1
原创 Java多线程编程-(10)-单例模式几种写法的错与对
前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两...
2017-10-22 15:33:09 3588 4
原创 Java多线程编程-(9)-ThreadLocal造成OOM内存溢出案例演示与原理分析
前几篇: Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两种...
2017-10-20 19:53:26 21539 21
原创 Java多线程编程-(8)-多图深入分析ThreadLocal原理
前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两种常用的线程计数器Count
2017-10-20 17:15:13 22982 17
原创 Java多线程编程-(7)-使用线程池实现线程的复用和一些坑的避免
前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信Java多线程编程-(6)-两种...
2017-10-16 19:20:20 13145 4
原创 Java多线程编程-(6)-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier
前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信倒计时CountDownLatchCountDownLat
2017-10-12 19:32:49 8146 3
原创 Java多线程编程-(5)-使用Lock对象实现同步以及线程间通信
前几篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用Java多线程编程-(4)-线程间通信机制的介绍与使用在《Java多线程编程-(4)-线程间通信机制的介绍与使用》已经学习了,可以使用方法wait/notify 结合同步关键字s
2017-10-10 21:14:50 7863 2
原创 Java多线程编程-(4)-线程间通信机制的介绍与使用
上一篇:Java多线程编程-(1)-线程安全和锁Synchronized概念Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性Java多线程编程-(3)-线程本地ThreadLocal的介绍与使用线程间通信简介我们知道线程是操作系统中独立的个体,但是这个单独的个体之间没有一种特殊的处理方式使之成为一个整体,线程之间没有任何交流和沟通的话,他就是一个个单独的个体,不足以形成
2017-10-10 18:25:52 7567 14
tomcat-redis-session
2016-07-25
Node.js MongoDB AngularJSWeb开发中文版.part1
2016-06-02
jakarta-taglibs-standard-1.1.2.zip
2016-05-13
mysql-connector-java-commercial-5.1.25-bin.jar
2014-12-04
Spring3+Hibernate4+Struts2 jar包 SSH框架
2014-10-02
properties editor
2014-09-24
Eclipse编辑器基本设置包含基本使用的设置配置过程
2014-08-05
MyBatis动态代理实现无接口实现类操作数据库实现原理
2017-11-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人