![](https://img-blog.csdnimg.cn/6f4e2264bfc4425781e67026322a28b8.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java多线程
文章平均质量分 76
Java多线程
Lumos`
努力努力再努力
展开
-
面经——多线程
面经——多线程JMM 内存模型volatile解析15. JMM 内存模型Java 内存模型试图屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。主内存与工作内存处理器上的寄存器的读写的速度比内存快几个数量级,为了解决这种速度矛盾,在它们之间加入了高速缓存。加入高速缓存带来了一个新的问题:缓存一致性。如果多个缓存共享同一块主...原创 2019-12-22 20:47:46 · 560 阅读 · 0 评论 -
多线程常见问题总结
多线程常见问题总结目录并行和并发有什么区别?线程和进程的区别?守护线程是什么?创建线程有几种方式?说一下 rannable 和 callable 有什么区别?线程有哪些状态?sleep() 和 wait() 有什么区别?notify() 和 notifyAll 有什么区别?线程的 run() 和 start() 有什么区别?创建线程池有哪几种方式?线程池都有哪些状态?...原创 2019-08-05 11:28:41 · 1076 阅读 · 0 评论 -
synchronized 面试五连击
synchronized 面试五连击目录说一说自己对于 synchronized 关键字的了解说说自己怎么使用 synchronized 关键字的,在项目中用到了吗说一下 synchronized 关键字底层原理说说 JDK1.6 之后的 synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优化吗谈谈 synchronized 和 ReentrantLock 的区...原创 2019-12-14 19:49:44 · 552 阅读 · 0 评论 -
Java并发编程之阻塞队列
Java并发编程之阻塞队列目录阻塞队列概述为什么用?有什么好处?BlockingQueue的核心方法SynchronousQueue的用法用在哪里1. 阻塞队列概述阻塞队列,顾名思义,首先它是一个队列,而一个阻塞队列在数据结构中起到的作业大致如下图所示:当线程队列是空时,从队列中获取元素的操作将会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程...原创 2019-05-28 19:50:59 · 294 阅读 · 0 评论 -
Java锁之自旋锁
Java锁之自旋锁目录java锁之自旋锁理论知识java锁之自旋锁代码验证1. java锁之自旋锁理论知识自旋锁是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU2. java锁之自旋锁代码验证代码验证:通过CAS操作完成自旋锁,A线程先进来调用myLock方法自己持有锁5秒钟,B随后进来后发...原创 2019-05-28 00:09:46 · 224 阅读 · 0 评论 -
Java锁之可重入锁和递归锁
Java锁之可重入锁和递归锁目录Java锁之可重入锁和递归锁基本概念Java锁之可重入锁和递归锁代码验证小结理论,代码,小结,学习三板斧。1. Java锁之可重入锁和递归锁基本概念可重入锁(也叫递归锁),指的是同一线程外层函数获得锁之后,内层递归函数仍然能获取该锁的代码,在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁,也即是说,线程可以进入任何一个它己经拥...原创 2019-05-27 21:51:52 · 1220 阅读 · 0 评论 -
Java锁之公平和非公平锁
Java锁之公平和非公平锁目录公平锁和非公平锁概念公平锁和非公平锁区别ReentrantLock和synchronized是公平锁还是非公平锁?1. 公平锁和非公平锁概念公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能会造成优...原创 2019-05-27 21:34:26 · 3202 阅读 · 0 评论 -
Java多线程之线程通信之生产者消费者阻塞队列版
Java多线程之线程通信之生产者消费者传统版和阻塞队列版目录线程通信之生产者消费者传统版线程通信之生产者消费者阻塞队列版1. 线程通信之生产者消费者传统版题目: 一个初始值为零的变量,两个线程对其交替操作,一个加1一个减1,来五轮1.代码实现import java.util.concurrent.locks.Condition;import java.util.concu...原创 2019-05-28 21:07:21 · 443 阅读 · 0 评论 -
Java多线程之Callable、Future和FutureTask
Java多线程之Callable接口自己想总结一下的,看到一篇总结的更好的博客,就转载了,突然感觉真轻松,哈哈哈哈文章转载于:Matrix海子:Java并发编程:Callable、Future和FutureTask我们学习java基础的时候,知道创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行...原创 2019-05-28 21:49:02 · 167 阅读 · 0 评论 -
Java多线程之线程池详解
Java多线程之线程池详解目录:线程池使用及优势线程池3个常用方式线程池7大参数深入介绍线程池底层工作原理1. 线程池使用及优势线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量 超出数量的 线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。它的主要特点为:线程复用,控制最大并发数,管...原创 2019-05-29 19:06:10 · 516 阅读 · 0 评论 -
Java多线程之线程池7大参数、底层工作原理、拒绝策略详解
Java多线程之线程池7大参数详解原创 2019-05-29 19:06:54 · 2887 阅读 · 2 评论 -
Java多线程之线程池的手写改造和拒绝策略
Java多线程之线程池底层工作原理原创 2019-05-29 23:53:02 · 394 阅读 · 0 评论 -
Java多线程之Synchronized和Lock的区别
Java多线程之Synchronized和Lock的区别目录:原始构成使用方法等待是否可以中断加锁是否公平锁绑定多个条件Condition小结:Lock相比较Synchronized的优点1. 原始构成synchronized是关键字属于JVM层面,进入:monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monit...原创 2019-05-28 20:35:26 · 668 阅读 · 0 评论 -
Java多线程之死锁编码及定位分析
Java多线程之死锁编码及定位分析目录死锁是什么代码实现死锁解决办法1. 死锁是什么死锁是指两个或两个以上的进程在执行过程中因争夺资而造成的一种互相等待的现象,若无外力干涉那它们都将无法推进下去,如果系统资源允是,进程的资源请求都能够得到满是,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。2. 代码实现代码实现import java.util.con...原创 2019-05-30 20:32:40 · 305 阅读 · 0 评论 -
Java多线程之线程池配置合理线程数
Java多线程之线程池配置合理线程数目录代码查看公司服务器或阿里云是几核的合理线程数配置之CPU密集型合理线程数配置之IO密集型1. 代码查看公司服务器或阿里云是几核的要合理配置线程数首先要知道公司服务器或阿里云是几核的代码查看服务器核数:System.out.println(Runtime.getRuntime().availableProcessors());...原创 2019-05-30 20:11:52 · 7602 阅读 · 4 评论 -
Java多线程之多线程之间按顺序调用
Java多线程之多线程之间按顺序调用多线程之间按顺序调用,实现A->B->C1. 要求:AA打印5次,BB打印10次,CC打印15次接着AA打印5次,BB打印10次,CC打印15次…来10轮代码实现:import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Loc...原创 2019-05-13 20:04:21 · 606 阅读 · 0 评论 -
Java多线程之CountDownLatch用法
Java多线程之CountDownLatch用法本文目录:CountDownLatch基本概念CountDownLatch案例:6个同学陆续离开教室后班长才可以关门CountDownLatch案例:秦灭6国,一统华夏1. CountDownLatch基本概念1. 让一些线程阻塞直到另一些线程完成一系列操作后才被唤醒。2. CountDownLatch主要有两个方法,当一个或多...原创 2019-05-13 21:45:20 · 191 阅读 · 0 评论 -
Java多线程之CyclicBarrier用法
Java多线程之CyclicBarrier用法本文目录CyclicBarrier的基本概念CyclicBarrier的案例:集齐7颗龙珠就可以召唤神龙1. CyclicBarrier的基本概念CyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是:1. 让一组线程到达一个屏障(也可以叫同步点)时被阻塞, 直到最后一个线程到达屏障...原创 2019-05-14 11:20:37 · 332 阅读 · 0 评论 -
Java多线程之Semaphore用法
Java多线程之Semaphore用法本文目录:Semaphore基本概念Semaphore使用案例:3个停车位,6辆车去抢,走一辆,抢一个停车位。1. Semaphore基本概念在信号量上我们定义两种操作:1. 信号量主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制。2. acquire(获取) 当一个线程调用acquire操作时,它要么通过成...原创 2019-05-14 11:43:57 · 193 阅读 · 0 评论 -
Java多线程之集合类(线程安全和不安全)
Java多线程之集合类(浅析线程安全和不安全)本文目录:1.线程不安全之ArrayList,HashSet,HashMap和线程安全之CopyOnWriteArrayList,CopyOnWriteArraySet,ConcurrentHashMap2. 小结3.解析CopyOnWrite容器1.线程不安全之ArrayList和线程安全之CopyOnWriteArra...原创 2019-05-14 15:26:27 · 3276 阅读 · 1 评论 -
Java多线程之多线程工程代码编写思维方式
Java之多线程的工程代码编写思维方式题目:三个售票员卖出30张票,用线程模拟。前言:本文涉及synchronized、Lock和拉姆达表达式(Lambda Expressions),前两知识点推荐看这两篇写的很好的详解文章。Java并发编程:synchronizedJava并发编程:Lock多线程技巧口诀:线程 操作 资源类高内聚 低耦合未优化的...原创 2019-05-12 17:49:07 · 332 阅读 · 0 评论 -
Java多线程之线程虚假唤醒
Java多线程之线程虚假唤醒本文目录提纲问题:两个线程对一个初始值为零的变量操作,实现一个线程加一,另一个线程减一,来十次。问题:两个线程对一个初始值为零的变量操作,实现一个线程加一,另一个线程减一,来十次。1. 两个线程对一个初始值为零的变量操作,实现一个线程加一,另一个线程减一,来十次。代码实现:class ShareData{ private int numbe...原创 2019-05-12 20:35:37 · 1661 阅读 · 1 评论 -
Java多线程之volatile详解
Java基础之volatile详解目录:什么是volatile?JMM内存模型之可见性volatile三大特性之一:保证可见性volatile三大特性之二:不保证原子性volatile三大特性之三: 禁止指令重排小结1. 什么是volatile?答:volatile是java虚拟机提供的轻量级的同步机制(可以理解成乞丐版的synchronized)特性有:保证可见...原创 2019-05-17 10:45:27 · 317 阅读 · 0 评论 -
Java多线程之单例模式在多线程环境下的安全问题
Java基础之单例模式在多线程环境下的安全问题目录:单线程下的单例模式多线程下的单例模式单例模式volatile分析1. 单线程下的单例模式1. 单线程下单例模式代码public class SingletonDemo { private static SingletonDemo instance = null; private SingletonDemo...原创 2019-05-26 17:29:46 · 3941 阅读 · 0 评论 -
Java多线程之CAS深入解析
Java基础之CAS深入解析目录:CAS是什么CAS底层原理Unsafe深入解析CAS缺点引子:蚂蚁花呗一面:讲一讲AtomicInteger,为什么要用CAS而不是synchronized?1. CAS是什么CAS的全称为Compare-And-Swap,它是一条CPU并发原语。它的功能是判断内存某个位置的值是否为期望值,如果是则更改为新的值,这个过程是原子的...原创 2019-05-26 20:27:49 · 839 阅读 · 0 评论 -
Java多线程之CAS缺点
Java基础之CAS缺点原创 2019-05-26 20:31:45 · 1066 阅读 · 0 评论 -
Java多线程之8Lock问题解析
Java多线程之8Lock问题解析本文目录1 标准访问的时候,请问先打印邮件还是短信?2 sendEmail方法暂停4秒钟,请问先打印邮件还是短信?3 新增Hello普通方法,请问先打印邮件还是Hello?4 两部手机,请问先打印邮件还是短信?5 两个静态同步方法,同1部手机 ,请问先打印邮件还是短信?6 两个静态同步方法,有2部手机 ,请问先打印邮件还是短信?7 1个静态同步...原创 2019-05-13 18:32:57 · 421 阅读 · 0 评论