首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java
订阅
withnate
更多收藏集
微信扫码分享
微信
新浪微博
QQ
20篇文章 · 0订阅
并发编程-深入JMM内存模型与Volatile
CPU高速发展期间,内存和硬盘的发展速度远远跟不上CPU,这就导致了CPU去内存读写数据的速度相对缓慢。 针对这个问题,CPU厂商在CPU中内置了三级高速缓存(L1、L2、L3)来解决IO速度和CPU速度不匹配的问题,通过三级缓存,减少了CPU与内存的交互。 缓存行: 上面所说…
大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?【石杉的架构笔记】
上篇文章给大家聊了一下volatile的原理,具体参见:大白话聊聊Java并发面试问题之volatile到底是什么?。 这篇文章给大家聊一下java并发包下的CAS相关的原子操作,以及Java 8如何改进和优化CAS操作的性能。 因为Atomic系列的原子类,无论在并发编程、J…
面试官:知道时间轮算法吗?在Netty和Kafka中如何应用的?为什么不用Timer、延时线程池?
大家好,我是yes。 最近看 Kafka 看到了时间轮算法,记得以前看 Netty 也看到过这玩意,没太过关注。今天就来看看时间轮到底是什么东西。 我们先来简单看看 Timer、DelayQueue 和 ScheduledThreadPool 的相关实现,看看它们是如何实现延时…
面试必备:八种排序算法原理及Java实现
1. 概述 排序算法分为内部排序和外部排序,内部排序把数据记录放在内存中进行排序,而外部排序因排序的数据量大,内存不能一次容纳全部的排序记录,所以在排序过程中需要访问外存。 经常提及的八大排序算法指的就是内部排序的八种算法,分别是冒泡排序、快速排序、直接插入排序、希尔排序、简单…
大白话聊聊Java并发面试问题之谈谈你对AQS的理解?【石杉的架构笔记】
上一篇文章聊了一下java并发中常用的原子类的原理和Java 8的优化,具体请参见文章:大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?。 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。 因为首先,…
面试:为了进阿里,又把并发CAS(Compare and Swap)实现重新精读一遍
1. 什么是乐观锁与悲观锁? 总是假设最坏的情况,每次读取数据的时候都默认其他线程会更改数据,因此需要进行加锁操作,当其他线程想要访问数据时,都需要阻塞挂起。悲观锁的实现: Java里面的同步synchronized关键字的实现。 乐观锁,其实就是一种思想,总是认为不会产生并发…
Java面试必问,ThreadLocal终极篇
在面试环节中,考察"ThreadLocal"也是面试官的家常便饭,所以对它理解透彻,是非常有必要的. 当然了,也有面试官会慢慢引导到这个话题上,比如提问“在多线程环境下,如何防止自己的变量被其它线程篡改”,将主动权交给你自己,剩下的靠自己发挥。 那么ThreadLocal可以做…
Java并发之Condition
在使用Lock之前,我们使用的最多的同步方式应该是synchronized关键字来实现同步。配合Object的wait()、notify()系列方法可以实现等待/通知模式。Condition接口也提供了类似Object的监视器方式,与Lock配合可以实现等待/通知模式,但是这两…
bat等大公司常考java多线程面试题
简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高.线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位.同一进程…
Java并发编程(总结最全面的面试题!!!)
提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了CPU的使用效率,如果使用单线程就只能有一个CPU核心被使用。 比如当我们在网上购物时,为了提升响应…