并发
jikangyang
这个作者很懒,什么都没留下…
展开
-
线程池
一、线程池下面这几组大家应该很属于,加 s 的都是工具类Array ArraysCollection CollectionsExecutor ExecutorsList<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");//上面和下面是等价的List...原创 2019-06-19 14:38:42 · 106 阅读 · 0 评论 -
synchronized和lock的区别
synchronized和lock的区别1.原始构造sync是关键字属于JVM层面monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象只有在同步块和方法中才能调用wait/notify等方法)monitorexitLock是具体的类(java.util.concurrent.locks.Lock)是api层面的锁编译...原创 2019-06-18 13:58:37 · 335 阅读 · 0 评论 -
阻塞队列
一、阻塞队列阻塞队列,顾名思义。首先他是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示当阻塞队列是 空 的时候,从队列中 获取 元素的操作将会被阻塞。当阻塞队列是 满 的时候,从队列中 添加 元素的操作将会被阻塞。BlockingQueue下面来看一张图七个是实现类:方法:SynchronousQueue阻塞列队使用场景模拟代码:/* * Copy...原创 2019-06-17 17:53:51 · 157 阅读 · 0 评论 -
CountDownLatch、CyclicBarrier、Semaphore
一、CountDownLatch直接上代码看效果/* * Copyright (C), 2013-2019, 天津大海云科技有限公司 */import java.util.concurrent.CountDownLatch;/** * @author yangjikang * @date 2019/6/17 14:05 * @description CountDownLat...原创 2019-06-17 15:51:37 · 103 阅读 · 0 评论 -
Thread类方法
Thread Thread.currentThread() :获得当前线程的引用。获得当前线程后对其进行操作。Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() :返回线程由于未捕获到异常而突然终止时调用的默认处理程序。int Thread.activeCount():当前线程所在线程组中活动线程的数目。v...转载 2019-06-17 14:19:07 · 280 阅读 · 0 评论 -
死锁
一、造成死锁的原因二、自己写一个死锁/* * Copyright (C), 2013-2019, 天津大海云科技有限公司 */import java.util.concurrent.TimeUnit;/** * 死锁测试 * * @author yangjikang * @date 2019/6/19 15:26 * @modified By yangjikang ...原创 2019-06-19 16:50:16 · 149 阅读 · 0 评论 -
ArrayList、HashSet、HashMap线程不安全解决方案
一、new ArrayList<>下面是jdk1.8的源码片段 /** * Constructs an empty list with an initial capacity of ten. * 构造一个初始容量为10的空列表 */ public ArrayList() { this.elementData = DEFAU...原创 2019-06-12 16:38:39 · 1042 阅读 · 0 评论 -
2019大厂面试题(volatile+CAS)
一、Volatile是什么volatile是java虚拟机提供的轻量级的同步机制保证可见性不保证原子性禁止指令重排(保证有序性)JMM(Java内存模型)1.可见性2.原子性3.有序性1.1保证可见性模拟volatile可见性案例,如下/* * Copyright (C), 2013-2019, 天津大海云科技有限公司 */package com.jikang....原创 2019-06-12 16:38:56 · 705 阅读 · 0 评论 -
java锁、公平锁、非公平锁、递归锁、自旋锁、读写锁
一、公平锁和非公平锁直接上图看吧二、递归锁代码案例/* * Copyright (C), 2013-2019, 天津大海云科技有限公司 *//** * @author yangjikang * @date 2019/6/14 15:48 * @description 递归锁的测试案例 * @modified By yangjikang */public clas...原创 2019-06-14 17:17:11 · 144 阅读 · 0 评论 -
Callable接口
一、创建多线程的方式1.四种创建多线程的方式第一种:继承Thread类第二种:实现Runnable接口第三种:Callable接口直接看代码吧:/* * Copyright (C), 2013-2019, 天津大海云科技有限公司 */import com.jikang.MyApplication;import org.junit.runner.RunWith;import ...原创 2019-06-18 17:38:11 · 4004 阅读 · 1 评论