多线程/并发
文章平均质量分 86
鸡蛋达芬奇
7年软件研发设计经验,精通银行支付,互联网支付系统。
展开
-
LockSupport使用
LockSupport功能LockSupport在JDK中主要提供了线程的阻塞和唤醒功能。提供了更高级别的同步功能。阻塞方法主要是以park开头的各种方法,唤醒线程的方法只有unpark一个方法。LockSupport中的 park和unpark方法提供的线程阻塞和唤醒功能,避免了Object中已经废弃方法suspend和resume引起的死锁问题。阻塞方法park方法的执行与获得的执行许原创 2017-08-08 14:56:42 · 325 阅读 · 0 评论 -
生产者消费者(singlAll和await误用)
Conidition中的SinglAll和await理解使用Condition的SinalAll和await()方法写了一个生产者和消费者程序,没想到出现的问题每次不一样,仔细分析了一下,自己没有深刻理解这两种方法原理,造成程序编写有问题 Condition主要是负责线程间通信与Object中方法类似,但是比起Object类中的方法要灵活很多,接口中定义的方法主要如下: 1. await(原创 2017-07-25 21:03:06 · 457 阅读 · 0 评论 -
Volatile并发理解
Volatile作用在java中主要用来修饰成员变量和类变量。其中,使用volatile修饰的变量在多线程环境中对所有多线程都是可见的。即,其中一个线程修改了volatile修饰的变量值,则其他线程能够立即得到最新修改的值。对于这个方面的理解,可以从并发编程模型(CPU,缓存,内存)和JAVA内存模型两个方面分析。并发编程模型现在的服务器都是多核的,而应用的都是发生在多线程环境中,那么在多核服务器中原创 2017-07-07 00:01:29 · 330 阅读 · 0 评论 -
AbstractQueuedSynchronizer深度学习(独占锁)
概念AbstractQueuedSynchronizer简称AQS,即抽象队列同步器。AQS是JAVA并发编程的核心基础类。所有的并发都是基于AQS进行扩展。AQS内部采用FIFO队列进行线程并发的管理。 类AQS采用模板方法进行设计,可以让更多的子类去扩展自己需要的功能。AQS主要提供两种模式并发模型: 1. 独占模式:任何时刻只能有一个线程获得当前执行锁定 2. 共享模式:任何时刻可以有多原创 2017-08-02 23:00:45 · 297 阅读 · 0 评论 -
ConcurrentLinkedQueue学习
队列的概念队列是一种先进先出的基于结点的数据结构,进入队列时间长的元素称之为队头,即head。进入队列时间最晚的元素称之为队尾,即tail。每次插入新的元素都是从队列的尾部插入。每次从队列中获取元素都是从头元素获取。在JAVA中普通的队列Queue是线程非安全的数据结构,每次只有一个线程进行操作时才是安全的。然而,ConcurrentLinkedQueue属于线程安全的队列,支持多个线程并原创 2017-08-07 13:54:25 · 263 阅读 · 0 评论