自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 面试必问:读写一致性,你需要思考的问题

先说明下,本文要讨论的多线程读写是指一个线程写,一个或多个线程读,不包括多线程同时写的情况。试想下这样一个场景:一个线程往hashmap中写数据,一个线程往hashmap中读数据。 这样会有问题吗?如果有,那是什么问题?相信大家都知道是有问题的,但至于到底是什么问题,可能就不是那么显而易见了。问题有两点。一是内存可见性的问题,hashmap存储数据的table并没有用voli...

2019-07-30 15:19:22 163

转载 linux内核级同步机制--futex

在面试中关于多线程同步,你必须要思考的问题 一文中,我们知道glibc的pthread_cond_timedwait底层是用linux futex机制实现的。理想的同步机制应该是没有锁冲突时在用户态利用原子指令就解决问题,而需要挂起等待时再使用内核提供的系统调用进行睡眠与唤醒。换句话说,在用户态的自旋失败时,能不能让进程挂起,由持有锁的线程释放锁时将其唤醒?如果你没有较深入地...

2019-07-29 17:45:33 185

转载 面试中关于多线程同步,你必须要思考的问题

ReentrantLock的实现网上有很多文章了,本篇文章会简单介绍下其java层实现,重点放在分析竞争锁失败后如何阻塞线程。因篇幅有限,synchronized的内容将会放到下篇文章。Java Lock的实现ReentrantLock是jdk中常用的锁实现,其实现逻辑主语基于AQS(juc包中的大多数同步类实现都是基于AQS);接下来会简单介绍AQS的大致原理,关于其实现细...

2019-07-24 17:42:13 143

转载 面试官问:多线程同步内部如何实现的,你知道怎么回答吗?

线程同步可以说在日常开发中是用的很多,但对于其内部如何实现的,一般人可能知道的并不多。本篇文章将从如何实现简单的锁开始,介绍linux中的锁实现futex的优点及原理,最后分析java中同步机制如wait/notify, synchronized, ReentrantLock。自己实现锁首先,如果要你实现操作系统的锁,该如何实现?先想想这个问题,暂时不考虑性能、可用性等问题,...

2019-07-23 17:35:13 170

转载 分布式Redis深度历险-Cluster

本文为分布式Redis深度历险系列的第三篇,主要内容为Redis的Cluster,也就是Redis集群功能。Redis集群是Redis官方提供的分布式方案,整个集群通过将所有数据分成16384个槽来进行数据共享。集群基础实现一个集群由多个Redis节点组成,不同的节点通过CLUSTER MEET命令进行连接:CLUSTER MEET <ip> <port&...

2019-07-22 16:00:18 69

转载 分布式Redis深度历险-Cluster

本文为分布式Redis深度历险系列的第三篇,主要内容为Redis的Cluster,也就是Redis集群功能。Redis集群是Redis官方提供的分布式方案,整个集群通过将所有数据分成16384个槽来进行数据共享。集群基础实现一个集群由多个Redis节点组成,不同的节点通过CLUSTER MEET命令进行连接:CLUSTER MEET <ip> <port&...

2019-07-22 15:56:25 87

转载 分布式Redis深度历险-Sentinel

上一篇介绍了Redis的主从服务器之间是如何同步数据的。试想下,在一主一从或一主多从的结构下,如果主服务器挂了,整个集群就不可用了,单点问题并没有解决。Redis使用Sentinel解决该问题,保障集群的高可用。如何保障集群高可用保障集群高可用,要具备如下能力:能监测服务器的状态,当主服务器不可用时,能及时发现当主服务器不可用时,选择一台最合适的从服务器替代原有主服务器存储...

2019-07-20 14:36:54 134

转载 分布式Redis深度历险-复制

Redis深度历险分为两个部分,单机Redis和分布式Redis。本文为分布式Redis深度历险系列的第一篇,主要内容为Redis的复制功能。Redis的复制功能的作用和大多数分布式存储系统一样,就是为了支持主从设计,主从设计的好处有以下几点:读写分离,提高读写性能数据备份,减少数据丢失的风险高可用,避免单点故障旧版复制实现Redis的复制主要分为同步和命令传播两个步骤:同步...

2019-07-19 15:05:12 142

转载 用 Hystrix 构建高可用服务架构

1.Hystrix 是什么?在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的。Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。Hystrix 通过将依赖服务进行资源隔离,进而阻止某个依赖服务出现故障时在整个系统所有的依赖服务调用中进行蔓延;同时Hys...

2019-07-18 17:46:07 64

转载 基于Spring Cloud Netflix的TCC柔性事务和EDA事件驱动示例

SolarSpring Cloud为开发者提供了快速构建分布式系统中的一些常见工具,如分布式配置中心,服务发现与注册中心,智能路由,服务熔断及降级,消息总线,分布式追踪的解决方案等。本次实战以模拟下单流程为背景,结合Spring Cloud Netflix和分布式事务解决方案中Try Confirm Cancel模式与基于事件驱动的服务架构作为实战演示。开发环境Docker ...

2019-07-17 15:46:19 182

转载 spring boot入门,看这篇文章就够了

一、SpringBoot入门1、基本介绍简化Spring应用开发的一个框架、整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;优点:快速创建独立运行的Spring项目以及与主流框架集成;使用嵌入式的Servlet容器,应用无需打成WAR包;starters自动依赖与版本控制;大量的自动配置,简化开发,也可修改默认值;无需配置XML,无代码生成,开箱即用;准生产...

2019-07-16 16:11:15 175

转载 面试官常问的Nginx的几个问题

1.什么是Nginx?Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 目前使用的最多的web服务器或者代理服务器,像淘宝、新浪、网易、迅雷等都在使用2.为什么要用Nginx?优点:跨平台、配置简单非阻塞、高并发连接:处理2-3万并发连接...

2019-07-15 15:15:09 146

转载 阿里Jvm必问面试题及答案

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。Java内存结构?方...

2019-07-13 14:19:59 161

转载 43道多线程面试题,附带答案(三)

1.volatile关键字在Java中有什么作用?volatile是一个特殊的修饰符,只有成员变量才能使用它。在Java并发程序缺少同步类的情况下,多线程对成员变量的操作对其它线程是透明的。volatile变量可以保证下一个读取操作会在前一个写操作之后发生。2.volatile 变量和 atomic 变量有什么不同?首先,volatile 变量和 atomic 变量看起来很像...

2019-07-12 17:14:34 407

转载 43道多线程面试题,附带答案(二)

1.线程的sleep()方法和yield()方法有什么区别?答: ① sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会; ② 线程执行sleep()方法后转入阻塞(blocked)状态,而执行yield()方法后转入就绪(ready)状态; ③ sleep()方法声明...

2019-07-11 15:41:46 873

转载 25道多线程面试题(一)

1.什么是进程?是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。2.什么是线程?线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。3.进程和线程的区别?进程和...

2019-07-10 20:51:07 287

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除