juc与jvm
juc与jvm
Insist___
这个作者很懒,什么都没留下…
展开
-
2-2CAS(并发面试版)
文章目录1 什么是CAS?2 CAS 底层原理?谈谈对 UnSafe 的理解?2.1getAndIncrement();2.2 UnSafe 类2.3CAS 是什么2.4 CAS 的缺点?1 什么是CAS?比较并交换如果线程的期望值和物理内存的真实值一致,就修改如果线程的期望值和物理内存的真实值不一致,本次修改失败,需要重新获取主物理内存的真实值。public class CASDemo...原创 2020-02-19 15:44:13 · 160 阅读 · 0 评论 -
2-1volatile(并发面试版)
文章目录1请谈谈你对 volatile 的理解1.1JMM(Java 内存模型) 你谈谈1.1.1 JMM 的概念1.1.2对 上述JMM 的概念进行解释如下:1.1.3JMM 三个特性1.1.4为什么说volatile 是 Java 虚拟机提供的轻量级的同步机制?1.1.5写个demo 证明一下可见性1.1.5验证volatile不保证原子性1请谈谈你对 volatile 的理解volati...原创 2020-02-19 10:51:05 · 101 阅读 · 0 评论 -
1-8并发编程(8)
文章目录线程池1.1Executor1.2ExecutorService1.3Callable1.4 Executors1.5 线程池1.6future1.7线程池程序:线程池1.1Executor定义了一个接口,里边又一个任务,具体怎么执行,自己实现是个底层接口/** * 认识Executor */package yxxy.c_026;import java.util.con...原创 2020-02-18 16:01:00 · 320 阅读 · 0 评论 -
1-7并发编程(7)
文章目录1 并发容器1.1 ConcurrentMap1.2CopyOnWriteList 写时复制容器1.3synchronizedList1.4 Queue1.5 LinkedBlockingQueue1.6ArrayBlockingQueue1.7DelayQueue1.8LinkedTransferQueue1.9SynchronousQueue1 并发容器1.1 Concurr...原创 2020-02-18 15:22:48 · 147 阅读 · 0 评论 -
1-6并发编程(6)
文章目录1写一个线程安全的单例模式2 有N张火车票,每张票都有一个编号,同时有10个窗口对外售票,请写一个模拟程序2.1 第一个程序2.2第二个程序:使用Vector2.3第三个程序:使用Vector,在加一个锁2.4第四个程序:并发容器 ConcurrentQueue1写一个线程安全的单例模式/** * 线程安全的单例模式: * * 阅读文章:http://www.cnblogs.c...原创 2020-02-18 14:13:07 · 100 阅读 · 0 评论 -
1-5并发编程(5)
文章目录1 写一个固定容量同步容器,拥有put和get方法,以及getCount方法,能够支持2个生产者线程以及10个消费者线程的阻塞调用1.1 使用wait和notify/notifyAll来实现1.2使用Condition的方式可以更加精确的指定哪些线程被唤醒2threadlocal2.1例子2.2使用ThreadLocal1 写一个固定容量同步容器,拥有put和get方法,以及getCou...原创 2020-02-18 11:51:37 · 84 阅读 · 0 评论 -
1-4并发编程(4)
文章目录1 lock1.1reentrantlock用于替代synchronized1.2使用reentrantlock可以进行“尝试锁定”tryLock,这样无法锁定,或者在指定时间内无法锁定,线程可以决定是否继续等待1.3使用ReentrantLock还可以调用lockInterruptibly方法,可以对线程interrupt方法做出响应,在一个线程等待锁的过程中,可以被打断1.4Reent...原创 2020-02-18 11:08:31 · 197 阅读 · 0 评论 -
1-3并发编程(3)
文章目录1.”实现一个容器,提供两个方法,add,size写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束 “的代码进阶过程1.1错误的代码1.2添加volatile1.3使用wait和notify1.4使用wait和notify互相通知1.5使用Latch(门闩)替代wait notify来进行通知1.”实现一个容器,提供两个方法,add...原创 2020-02-17 16:03:45 · 205 阅读 · 0 评论 -
1-2 并发编程(2)
文章目录1 volatile 关键字,使一个变量在多个线程间可见2volatile并不能保证多个线程共同修改running变量时所带来的不一致问题,也就是说volatile不能替代synchronized3synchronized优化4o变成另外一个对象,则锁定的对象发生改变5不要以字符串常量作为锁定对象1 volatile 关键字,使一个变量在多个线程间可见/** * volatile 关...原创 2020-02-17 15:04:00 · 111 阅读 · 0 评论 -
1-1并发编程(1)
文章目录1synchronized1.1任何线程要执行下面的代码,必须先拿到o的锁1.2任何线程要执行下面的代码,必须先拿到this的锁1.3synchronized 修饰静态1.4 分析程序1.4 同步和非同步方法是否可以同时调用?1.5 银行账户,对写进行加锁,对读不用加锁,这样行不行?1.6 一个同步方法可不可以调用另外一个同步方法?一个线程已经拥有某个对象的锁,再次申请的时候是不是还可以得...原创 2020-02-17 10:56:27 · 128 阅读 · 0 评论