第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 尚硅谷-互联网大厂高频重点面试题 (第2季)JUC多线程及高并发

尚硅谷-互联网大厂高频重点面试题 (第2季)JUC多线程及高并发

时间:2021-04-18 08:26:52

相关推荐

尚硅谷-互联网大厂高频重点面试题 (第2季)JUC多线程及高并发

本期内容包括

JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。

斩offer、拿高薪、跳槽神器,对标阿里P6的《尚硅谷_互联网大厂高频重点面试题(第2季)》发布。本套课程总结分析了大厂互联网公司常见常考的技术点,通过对40多个题目共计120集视频详细全面的讲解,让大家深刻掌握、扎实吃透当前的主流Java高级技术。

NoSQL数据库Redis

消息中间件MQ

JUC多线程及高并发

并发和并行有什么区别

并发:多个线程去访问同一个资源

并行:各种事情同时去做,一边干什么,一边干什么

请谈谈你对volatile的理解

volatile是什么

三大特性

JMM内存模型之可见性

JMM:java内存模型

各个线程对主内存中的数据进行改变,不是直接修改,而是会把age=25拷贝到自己的工作内存中再进行改变

t1改为37后要把新数据写回到主内存中,t2,t3不知道主内存中的值已经改变了

所以我们需要有一个机制:JMM内存模型的可见性,只要有一个线程改变数据后要写回到主内存中,其它的线程马上就会知道主内存中的数据已经改变了

可见性的代码验证说明

3秒之后,a线程已经把number改了,但是main线程不知道,对main线程不可见,还在傻傻的等着,没有人通知我

现在修改程序,加了volatile

增加了内存之间的可见性

volatile不保证原子性

原子性:不可分割、完整性,也就是某个线程正在做某个具体业务时,中间不可以被加塞或者被分割,需要整体完整,要么同时成功,要么同时失败。

把验证可见性的代码写到一个方法seeokbyvolatile

20个线程去调用addplus方法,每个线程调用1000次,则结果应该是2000。

多线程编程的模板forthread10是自己设置的快捷键

volatile不保证原子性理论解释

轻量级就是乞丐版的sunchronized

不要杀鸡焉用牛刀,太重了

拷贝回自己的内存空间,每个人都拿到0,写回到主内存时,线程1写回到的时候被挂起了,线程2歘的写回了。然后线程1恢复后又写回了一遍,把原来的1给覆盖了。

三个线程都拿到1,都在各自的工作内存中加1,写回到的时候,没有拿到最新的值就又写了,写覆盖

volatile不保证原子性问题解决

volatile指令重排案例1

不可以,必须考虑指令之间的数据依赖性

加了volatile之后是禁止指令重排

volatile指令重排案例2

答案是6

但是指令重排后,答案可能是5

所以在这些变量前面加上volitaile就可以禁止指令重排

单例模式在多线程环境下可能存在安全问题

单例模式有六种

掌握一种即可

第一步 定义私有的实例变量

第二步 构造方法

第三步 新建,返回同一个变量

比较引用类型,内存地址

在多线程坏境下,单例模式出现了问题

如果加上synchronized,在多线程的环境控制住了

但是太重了,并发性下降了

单例模式volatile分析

DCL模式 Double Check Lock双端检锁机制

在加锁之前和之后都进行一次检测

地址不为空,但是内容为空

所以要在instance变量上面加上volatile

总结:

CAS你知道吗?

CAS是什么

CAS compare and set 比较并交换

多个线程去操作主内存中的数据。

一个叫做期望值、一个叫做更新值

主内存中数据是5

一个线程拷贝回去自己的工作内存,对它进行修改,然后写回到主内存的时候,会进行比较和交换,如果和拷贝的数据一样的话,就将改变后的数据写回去;否则的话,就不进行写回。

CAS底层原理上

当前对象 内存偏移量

AtomicInteger 的getandincrement方法底层其实是CAS思想+套的是unsafe类的CPU原语来保证原子性,

底层思想是比较并交换,真实值和期望值相等就交换成功,否则就失败,失败就再来,直到比较成功为止。

CAS底层原理下

CAS缺点

CAS能够不加锁保证一致性,并发性加强了

原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗?

ABA问题

2号线程比1号线程快,把原来的A改为B,又改为A。

1号线程回来后,期望的和原来的一样,以为没有改变过,于是写回主内存。

但是中间有猫腻,2号线程已经把它改过了又改回去了。

AtomicReference原子引用

只管开头和结尾,没有管中间。

原子引用的泛型类

原子User类型

AtomicStampedReference版本号原子引用

时间戳原子引用

ABA问题的解决

修改成功,

我们知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案。

集合类不安全之并发修改异常

ArrayList底层是一个数组

什么类型的数组?

数组初始长度为10,超过10以后进行扩容。

它是线程不安全的。

举一个线程不安全的案例。

把3改为30

java.util.ConcurrentModificationException

并发修改异常

线程不安全是指:在多线程的情况下,

方法一:

Vector类可以解决这个问题,加锁一致性可以保证,但是并发性急剧下降。

不许用Vector

方法二:

Map和Set也是不安全的集合类

方法三:

集合类不安全之写时复制

写时复制

锁、扩容、写新元素

集合类不安全之Set

集合类不安全之Map

TransferValue醒脑小练习

传值还是传引用

age属于main方法的,然后调用方法时复印了一份传给它,然后方法把复印件给改动了

我只是给你复印了一份值,原件根本没动,所以第一个age还是20

person是main的,传引用传内存地址给方法,两个引用指向了同一个地址,这时把这个地址的值改动了

str是属于main方法的,这个池子里有了abc

这个池子里面没有xxx,那么就重新创建一个指向它

公平锁/非公平锁/可重入锁/递归锁/自旋锁 谈谈你的理解?请手写一个自旋锁。

Java锁之公平锁/非公平锁

无参数:不公平 允许某个同学突然出来加塞

有参数:公平 队列先来后到

synchronized等同于锁,非公平锁

被它抢到了锁上了

Java锁之可重入锁和递归锁理论

Java锁之可重入锁和递归锁代码验证

资源类

线程操作资源类

t1线程在外层方法获取锁的时候,t1在进入内层方法会自动获取锁

只要锁匹配,几把锁都可以。

Java锁之自旋锁理论知识

Unsafe类+CAS思想(自旋锁)

Java锁之自旋锁代码验证

如果是第一次进来线程,就不进循环

A线程进来,发现期望的是空的,那么while的条件就是false,于是不进入循环,直接拿到了锁。

B线程进来,发现期望的值不是空,那么while的条件就是true,于是它进入锁中,一直会循环的判断,直到期望的值是空了,才能推出循环,获得锁。

BB等5秒钟,等A解锁了,B才能解锁

Java锁之读写锁理论知识

Java锁之读写锁代码验证

以前使用锁和synchronized读和写通通不能并发执行,数据一致量可以保证,但并发性急剧下降。

线程操作资源类

高内聚低耦合

锁不能进行细粒度的划分,只能把全部进行封杀

CountDownLatch/CyclicBarrier/Semaphore使用过吗?

CountDownLatch

火箭发射

使用枚举

CyclicBarrier Demo

循环屏障

人都到齐了才能开会

一个是减法,倒计时

一个是加法,累积

Semaphore Demo

多个线程强多个资源

信号灯

资源为1时就退化成synchronized

不写是非公平锁,效率高允许加塞

可以复用

可以抢占可以释放

停3秒钟

阻塞队列知道吗?

阻塞队列理论

阻塞队列接口结构和实现类

生产者 消费者 sychronized wait notify

队列:先进先出

阻塞:

生产者消费者模式:用阻塞对垒写

阻塞队列API之抛出异常组

检查队列的首元素是谁?

a

先进先出

阻塞队列API之返回布尔值组

队列的首元素是谁

阻塞队列API之阻塞和超时控制

阻塞的意思是:我现在满了,就等着,直到有元素出去。因为我不能丢消息呀,就等着

取不出来就堵着

过时不候

超时

这时候没有等2秒钟

只阻塞2秒钟。2秒钟之后就打印出false

阻塞队列之同步SynchronizedQueue队列

0库存,生产出来的马上被别人拿走

你不消费,你想到里面插第二个你插不进去

线程通信之生产者消费者传统版

防止虚假唤醒

没有控制住,生产了2个

所以唤醒的时候要加入循环

synchronized和lock有什么区别

锁绑定多个条件condition

线程通信之生产者消费者阻塞队列版

线程池用过吗?ThreadPoolExecutor谈谈你的理解?

Callable接口

区别:

runnable接口没有返回值,不会抛异常,实现run

callable接口有返回值,会抛异常,实现call

要的是runnable,有的是callable,如何把它们之间加上关系

生活的例子:两个同学,我默认接收的参数是张,但是,要找一个中间人

FutureTask实现穿针引线的作用。

已经有runnable接口,为什么还需要callable接口呢?

多个线程都要使用cllable,每次都要返回一个成功或者失败的返回值。

适配模式。

get()建议放在最后

因为我们不会等这个线程,给它充足的时间去计算

如果把get放到前面,mian线程就被堵住了

所以这里可以加一个循环的判断!等算完了,才往下做

两个线程都开始做同一个任务,只会执行一次!即复用

如果说非要进去!那么就要启动多个futuretask

线程池使用及优势

永远传参数传接口

看CPU的核数

线程池3个常用使用方式

ThreadPoolExecutor

辅助工具类

一池固定线程、一池一线程、一池多线程

线程池7大参数入门简介

线程池7大参数深入介绍

线程池底层工作原理

线程池用过吗?生产上你如何设置合理参数。

线程池的4种拒绝策略理论简介

从而降低任务流量。

线程池实际中使用哪一个

无界的阻塞队列

线程池的手写改造和拒绝策略

最高几个客户来办业务,就报拒绝了

默认的拒绝策略:马上报异常

调用者运行机制:不会抛弃任务也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量

谁让你调用我的,那么你就去找他

抛弃队列中等待时间最久的任务

这样的话只能完成8个人的业务,剩下的就直接丢弃了

线程池配置合理线程数

死锁编码及定位分析

单线程不可能有死锁!没人跟你抢,你怎么会死锁。

两把锁

持有自己的锁还妄图得到别人的锁。

点赞4收藏分享A记录学习路线 发布了126 篇原创文章·获赞 91·访问量 9万+ 私信已关注zengqinn1235个月前都是看视频截图的,有没有资源直接下载mengying1122335个月前有资源吗asd3478284576个月前厉害。。羽扬_8个月前我看到120集了, 发现才讲完 最初脑图的 "4 JVM + GC 解析",请问最近 , 后续几个月会更新嘛? 有资源嘛weixin_407772939个月前前辈. 我要如何联系上你? 留个Email或者微信/qq?

尚硅谷_互联网大厂高频重点面试题(第二季)思维导图脑图笔记完整版

阅读数 4030

尚硅谷_互联网大厂高频重点面试题第2季思维导图笔记下载,git部分未记录(尚硅谷周阳老师的视频脑图),内容包括JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。...博文来自:Geekerstar

尚硅谷周阳redis教程脑图xmind版

09-01 整理尚硅谷redis教程脑图xmind版(全),包含备注等,非pdf版 下载

尚硅谷-互联网大厂高频重点面试题(第2季)JVM+GC解析

阅读数 1080

熟悉JVM架构与GC垃圾回收机制,以及相应的参数调优,有过在Linux上进行系统优化的经验前提复习JVMGC快速回顾复习串讲类装载器子系统线程私有线程公有复制算法在年轻代使用(幸存者0区)既不浪费空间...博文来自:AthlenaA的博客

尚硅谷面试第二季笔记整理

阅读数 489

面试第二季文章目录面试第二季一、 volatile关键字理解1.1 保证内存可见性1.2 不保证原子性1.3 禁止指令重排序1.4 volatile使用场景二、Java内存模型(JMM)2.1 JMM...博文来自:Sherman

互联网大厂高频重点面试题(第2季)脑图-完结.txt

05-31 本人吐血整理,git部分未记录(尚硅谷周阳老师的视频脑图) 本期内容包括JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。上半场,从多线程并发入手,分层递进讲解 下载

互联网大厂高频重点面试题

04-15 课程内容包括JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。从多线程并发入手,分层递进讲解,逐步让大家掌握volatile、原子类和原子引用、CAS、ABA、 下载

尚硅谷高频面试题第一题解析

阅读数 793

原视频地址:/video/av35040927题目: public static void main(String args[]){ int i...博文来自:W_qwahaha的博客

互联网大厂高频重点面试题2

阅读数 77

AtomicIntegerABA:狸猫换太子解决:理解院子引用+新增机制(版本号,类似时间戳)锁公平锁和非公平锁 - 并发包中的 ReentrantLock指定构造函数的boolean获得,默认非公平...博文

互联网面试题第2季.mmap

12-19 若有侵权,请联系删除。没积分,请支持。 该脑图根据尚硅谷的面试教程讲课内容整理得出,配合尚硅谷面试教程使用: 尚硅谷_互联网大厂高频重点面试题(第2季) 脑图格式为.mmap格式,可以选择用mindm 下载

尚硅谷-互联网大厂高频重点面试题(第2季)JUC多线程及..._CSDN博客

1-17

尚硅谷-互联网大厂高频重点面试题(第2季)JVM+GC解析..._CSDN博客

11-26

大数据面试题

09-13 大数据面试题,涉及到MapReduce,hdfs,hive,flume,spark,kafka 下载

尚硅谷_互联网大厂高频重点面试题(第二季)思维导图..._CSDN博客

11-26

互联网大厂高频重点面试题(第2季)_m0_46238194的博客-CSDN博客

2-18

尚硅谷周阳老师的互联网大厂高频重点面试题(第2季)脑图.rar

08-25 尚硅谷周阳老师的互联网大厂高频重点面试题 (第2季 下载 关注

Geekerstar

12篇文章

排名:千里之外

关注

xssdpgy

0篇文章

排名:0

关注

sherman2571

18篇文章

排名:千里之外

高频面试题(二)之JUC多线程及高并发_qq_41884677的博客-CSDN博客

1-9

互联网大厂高频重点面试题(第2季)_Java_m0_46238545的博客-CSDN博客

4-5

尚硅谷大厂高频面试题第二季

05-29 尚硅谷大厂高频面试题第二季 下载

互联网大厂高频重点面试题(第2季)脑图.txt

05-17 互联网大厂高频重点面试题 (第2季)脑图,这个暂时只是部分 还在完善中,纯个人制作,官方没有提供 下载

尚硅谷_互联网大厂高频重点面试题(第2季)思维导图 脑图..._CSDN博客

4-7

互联网大厂高频重点面试题2-chizhui8035-CSDN博客

11-24

尚硅谷周阳互联网面试题第2季.html

09-15 尚硅谷,互联网面试题第2季 ,周阳,上课脑图,html版 下载

互联网大厂算法面试题集合,看完我跪了!-勇往直前的专栏

12-20

17.互联网大厂高频面试题-OOM_大李出奇迹的博客-CSDN博客

4-1

互联网面试题第2季脑图(1).zip

09-23 尚硅谷周阳老师的互联网大厂高频重点面试题 (第2季)脑图.mmap juc、jvm gc 下载

JUC|面试题整理

阅读数 923

寒假对java 并发编程所做的一些理解笔记双击图片放大word文档需要的话,请发评论!...博文来自:俺老孙来也

互联网大厂高频重点面试题第二季(思维导图+视频)

08-22 尚硅谷互联网大厂高频重点面试题第二季, 内容包括JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。从多线程并发入手,分层递进讲解,逐步让大家掌握vol 下载

尚硅谷周阳大神最新视频下载

07-18

JUC、JVM(面试很有用)、互联网架构、SpringCloud、zookeeper、项目总结等,百度网盘链接,分享给需要的哥们 相关下载链接:///download论坛

互联网大厂高频重点面试题(第2季)

04-30 斩offer、拿高薪、跳槽神器,对标阿里P6的《尚硅谷_互联网大厂高频重点面试题(第2季)》发布。 下载

Java工程师常见面试题集锦(二)互联网人必看!(附答案及视频教程,持续更新)

阅读数 4570

大牛也怕面试题,尤其是基础题,在面试中如果出现一两题回答不准确很有可能你就被拒之门外了。CSDN学院年终倾情奉献,海量面试题(附答案)免费分享,帮助大家顺利过关。本周继续更新10道面试题。Java工程...博文来自:CSDN学院

互联网面试题第2季.rar

09-15 ,尚硅谷,周阳,互联网面试题脑图,第2季,.mmap版 下载

尚硅谷_互联网大厂高频重点面试题(第2季)思维导图 脑图笔记 完整版

阅读数 1724

尚硅谷的视频链接:尚硅谷_互联网大厂高频重点面试题(第2季)思维导图获取方法:获取思维导图需要扫描下列二维码关注微信同名公众号manongjinrong,关注公众号并发送“领取面试脑图”到公众号,即可...博文来自:码农和金融的专栏

互联网大厂高频重点面试题(上)

05-05

-

互联网面试题第2季脑图.mmap

08-28 互联网面试题第2季脑图,没有积分的可以给这个邮箱(zhouyff@)发信息,我看见会回复的! 下载

互联网大厂高频重点面试题(第2季)脑图.rar

08-25 尚硅谷周阳老师互联网大厂高频重点面试题 (第2季)脑图 下载

大厂面试题,看看到哪题会跪

阅读数 119

对前端感兴趣的小伙伴,可以关注我的 Github以下是一些大厂考的高频题,也是中高级前端和初级前端的分水岭,大家可以试试自己解答一下,今天只出题不给答案。欢迎大家在评论区给出你的答案或者对于这些题目的...博文来自:weixin_34009794的博客

互联网大厂高频

05-31 互联网大厂高频重点面试题 (第2季)脑图,这个暂时只是部分 还在完善中,纯个人制作,官方没有提供 下载

尚硅谷大厂高频面试题第二季视频资源.txt

08-02 本期内容包括 JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。 斩offer、拿高薪、跳槽神器,对标阿里P6的《尚硅谷_互联网大厂高频重点面试题(第2季)》发 下载

互联网大厂面试题回忆录

阅读数 3806

博主工作3年了,面过几家大厂,应聘的岗位是高级Java开发工程师,以下是亲身经历的一些面试题,记录下来,留给需要的人~...博文来自:达叔

互联网大厂最常见的面试算法题大集合

阅读数 534

点击上方“何俊林”,马上关注,每天早上8:50准时推送真爱,请置顶或星标很多朋友在后台留言,说是否有刷题总结,鱼哥从github上了解到一份不错的刷题集合记录,分享给大家......博文来自:突围的鱼

Java高频面试题-尚硅谷-Java面试题第一季

阅读数 517

Java SE面试题自增变量单例设计模式枚举类型返回常量对象的名字静态代码饿汉式静态代码块在类加载的时候执行什么时候可能用到这种呢?适用于这种需要读取一些初始化的信息才能创建对象的饿汉式:不存在线程安...博文来自:AthlenaA的博客

JUC多线程

阅读数 120

ReadWriteLocK读写锁拆分合并利用线程池创建线程博文来自:一只倔强而老实的虫

最新BATJ大厂面试题汇总新鲜出炉!(含答案解析)

阅读数 2247

最新的阿里、腾讯、百度、美团、头条等大厂技术面试题目近日被汇总整理,专家出题人分析汇总以及答案也在逐步补全中。目前该项目在GitHub上已获得超10900个Star,内容分为阿里篇、华为篇、...博文来自:EnjoyEDU的博客

最全 BATJ大厂面试题整理!(速度收藏)

阅读数 218

网上的都是按照公司划分的,想找具体某一方面的知识点有点不好找,我这里就根据知识点分门别类的整理了一下,想看哪一块可以快速找到,希望可以帮助大家,祝大家求职顺利。主要分为以下几部分:● (1)java面...博文来自:u011250186的博客

互联网大厂高频重点面试题(第2季)

04-28 本期内容包括JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。上半场,从多线程并发入手,分层递进讲解,逐步让大家掌握volatile、原子类和原子引用、CAS、 下载

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

阅读数 62万+

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频...博文来自:帅地

在中国程序员是青春饭吗?

阅读数 19万+

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。目录:你以为的人生 一次又一次的伤害 猎头界的真...博文来自:启舰

超全Python图像处理讲解(多图预警)

阅读数 1万+

文章目录Pillow模块讲解一、Image模块1.1 、打开图片和显示图片1.2、创建一个简单的图像1.3、图像混合(1)透明度混合(2)遮罩混合1.4、图像缩放(1)按像素缩放(2)按尺寸缩放1.5...博文来自:ZackSock的博客

JavaC语言PythonC++C#Visual Basic .NETJavaScriptPHPSQLGo语言R语言Assembly languageSwiftRubyMATLABPL/SQLPerlVisual BasicObjective-CDelphi/Object PascalUnity3D ©️ CSDN皮肤主题: 大白设计师: CSDN官方博客A记录学习路线 TA的个人主页 >

原创

126

粉丝

128

获赞

91

评论

16

访问

9万+

等级:

周排名:

2万+

积分:

2596

总排名:

2万+

勋章:已关注 私信

分类专栏

分布式1篇Python语言基础5篇Java语言基础30篇Git8篇TensorFlow2篇数据挖掘2篇Java编程21篇MacOS5篇找工作26篇Linux10篇算法3篇IntelliJ IDEA9篇大数据20篇java源码分析2篇LeetCode1篇设计模式24篇推荐系统2篇markdown语法1篇乔戈里16篇牛客网项目陆小凤CS-Notes1篇计算机网络2篇计算机操作系统黑马电商项目33篇redis19篇生物1篇华为软开云12篇数据结构5篇JVM5篇软件测试1篇英语1篇Python数据分析16篇Java异常3篇JUC5篇数据库4篇Maven1篇Tomcat1篇

展开

kefu@QQ客服

客服论坛400-660-0108

工作时间 8:30-22:00

关于我们招聘广告服务网站地图

京ICP备19004658号经营性网站备案信息

公安备案号 11010502030143

©1999- 北京创新乐知网络技术有限公司网络110报警服务

北京互联网违法和不良信息举报中心

中国互联网举报中心家长监护

版权与免责声明版权申诉

4

5

你的浏览器目前处于缩放状态,页面可能会出现错位现象,建议100%大小显示。 举报

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。