文章分类 - 并发
摘要:大部分的锁,像可重入锁,读写锁,countdownLatch等都是基于AQS实现。 1:AbstractQueuedSynchronizer是一个抽象方法,有一些方法是需要子类进行实现的,这里面就用到了模板的设计模式(不会请自行百度) 2:内部类Node节点,存储当线程获取不到锁的时候,进行锁的保存
阅读全文
摘要:什么是显示锁 在Java当中,已经有了synchronized这个锁。但是如果用户需要等待一段时间,然后让锁进行释放,显然synchronized是做不到,这个时候就需要显示锁来完成。 以下是Lock接口的方法,Lock只是一个接口,具体实现需要子类去完成。实现lock的子类有 ReentrantL
阅读全文
摘要:ReentrantLock是一个可重入锁。 解释:在当前线程中可以重复的获取锁。一个进入了递归操作,普通的锁是不支持的,需要等待锁释放,这个时候就造成了线程一直阻塞,所以要引入可重入锁。 下图是ReentrantLock类中的方法。这里面用到了AQS的知识点,如果不会,请先学习。 sync是一个抽象
阅读全文
摘要:所有的CAS操作都在atomic包下面 下面简单的介绍关于Integer不同的类,在atomic包下面有三个类 1:AtomicInteger类 我标了几个重点介绍的 构造器:两个构造器,如果传递值,赋值到value字段上。 value值是一个volatile修饰的,也就是一个线程修改其他线程都可以
阅读全文
摘要:1:介绍 CAS也是并发编程常用的类之一,它是基于原子性的操作来进行锁机制的。 实现原子操作是可以使用锁来执行的,当我们使用synchronized关键字的时候,是基于阻塞机制的锁,当一个线程拥有了锁,其他线程在调用的时候就必须等待。 当线程出现高并发,资源竞争激烈,还有可能死锁等情况,使用sync
阅读全文
摘要:CyclicBarrier类是我们平常使用的并发编程的一种。 简单理解:有三个跑道,张三跑了5米等人,李四跑了5米等人,A同学到了5米的时候,这个时候就三个人一起跑了。 个人理解:当我们的线程执行到await方法的时候会停止,而且多个线程调用await方法也会停止,直到调用的次数达到符合要求(new
阅读全文
摘要:CountDownLatch是一个并发编程里面常用的类,行业里面叫“发令枪”。 个人理解:当要去执行这一行代码的时候,必须等到其他线程执行完毕以后,才能去执行该代码。这个时候就可以使用CountDownLatch。 1:代码的实现 public class CountDownLatchTest {
阅读全文
摘要:本文主要研究在并发的情况下,jdk1.7情况下出现的问题。 在我们使用HashMap的时候,无非就使用put和get方法,并发情况下put的时候就会出现问题。 jdk1.7 put 的源码 hashmap的数据结构是数组和链表的组成,上面的内容大概说的是,当数组不够的时候,要进行X2的扩容。 主要分
阅读全文
摘要:1:线程的执行不同 CountDownLatch:是主线程等待,需要外部的线程来进行countDown操作。 CyclicBarrier:是主线程本身相互协调的,不需要其他的线程。 2:构造函数 CyclicBarrier:在调用await方法次数等于初始化个数时,能调用另外的线程进行操作。而Cou
阅读全文
摘要:主要是多个线程,执行await方法,直到等于初始化设置次数时,各个线程才能继续执行,否则就继续等待。 当调用await方法达到初始化之值的时候,还能进行统计的操作。 没有进行统计的代码 运行结果: await before 11await before 14await before 12await
阅读全文
摘要:1:forkjion里面的重要的概念 分而治之:一个大的事情平均分成几个相同小的事情,如果没有达到最小的要求,就继续分,一直分到达到的要求。 工作密取:一个电脑的线程数是有限的,如果分而治之的线程很多,就会形成线程的队列,这里面就会有完成的快和慢的不同线程。 快的线程执行完成以后,就会把慢的队列拿过
阅读全文
摘要:一般叫法'闭锁'。 使用方式:一个或者多个线程等待其他的线程执行countDown()方法,知道执行countDown()和new CountDownLatch(10)次数一下,在执行。 首先设置闭锁的个数 CountDownLatch latch = new CountDownLatch(10);
阅读全文
摘要:一、以下只是简单的实现多线程 1:继承Thread 2:实现 Runnable 3:实现callable 如果需要返回值使用callable,如果不需要返回最好使用runnable,因为继承只能单继承,所以不推荐使用Thread。 具体代码 @RunWith(SpringRunner.class)@
阅读全文

浙公网安备 33010602011771号