面试突击33:线程池有哪些状态?状态是如何转换的?

2022-03-23
阅读 2 分钟
1.8k
在 Java 中,线程池的状态和线程的状态是完全不同的,线程有 6 种状态:NEW:初始化状态、RUNNABLE:可运行/运行状态、BLOCKED:阻塞状态、WAITING:无时限等待状态、TIMED_WAITING:有时限等待状态和 TERMINATED:终止状态。而线程池的状态有以下 5 种:

Nacos+OpenFegin正确调用服务的姿势!

2022-03-23
阅读 7 分钟
1.5k
Nacos 支持两种 HTTP 服务请求,一个是 REST Template,另一个是 Feign Client。之前的文章咱们介绍过 Rest Template 的调用方式,主要是通过 Ribbon(负载均衡) + RestTemplate 实现 HTTP 服务调用的,请求的核心代码是这样的:
封面图

面试突击32:为什么创建线程池一定要用ThreadPoolExecutor?

2022-03-21
阅读 5 分钟
1.2k
在 Java 语言中,并发编程都是依靠线程池完成的,而线程池的创建方式又有很多,但从大的分类来说,线程池的创建总共分为两大类:手动方式使用 ThreadPoolExecutor 创建线程池和使用 Executors 执行器自动创建线程池。那究竟要使用哪种方式来创建线程池呢?我们今天就来详细的聊一聊。
封面图

面试突击31:什么是守护线程?它和用户线程有什么区别?

2022-03-16
阅读 6 分钟
1.6k
想要查看线程到底是用户线程还是守护线程,可以通过 Thread.isDaemon() 方法来判断,如果返回的结果是 true 则为守护线程,反之则为用户线程。
封面图

面试突击30:线程池是如何执行的?拒绝策略有哪些?

2022-03-15
阅读 6 分钟
1.2k
聊到线程池就一定会聊到线程池的执行流程,也就是当有一个任务进入线程池之后,线程池是如何执行的?我们今天就来聊聊这个话题。线程池是如何执行的?线程池的拒绝策略有哪些?
封面图

Spring Cloud Ribbon 中的 7 种负载均衡策略

2022-03-14
阅读 4 分钟
6.1k
负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器。
封面图

SpringCloud Nacos + Ribbon 调用服务的 2 种方法!

2022-03-10
阅读 10 分钟
1.7k
在 Nacos 中,服务调用主要是通过 RestTemplate + Ribbon 实现的,RestTemplate 是 Spring 提供的 Restful 请求实现类,而 Ribbon 是客户端负载均衡器,通过 Ribbon 可以获取服务实例的具体信息(IP 和端口号),之后再通过 RestTemplate 加服务实例的具体信息就可以完成一次服务调用了。​
封面图

面试突击29:说一下线程池7个参数的含义?

2022-03-09
阅读 4 分钟
2.2k
所谓的线程池的 7 大参数是指,在使用 ThreadPoolExecutor 创建线程池时所设置的 7 个参数,如以下源码所示: {代码...} 这 7 个参数分别是:corePoolSize:核心线程数。maximumPoolSize:最大线程数。keepAliveTime:空闲线程存活时间。TimeUnit:时间单位。BlockingQueue:线程池任务队列。ThreadFactory:创建线程的...
封面图

面试突击28:线程池有几种创建方式?推荐使用哪种?

2022-03-07
阅读 6 分钟
1.5k
在 Java 语言中,并发编程都是通过创建线程池来实现的,而线程池的创建方式也有很多种,每种线程池的创建方式都对应了不同的使用场景,总体来说线程池的创建可以分为以下两类:
封面图

为什么需要线程池?什么是池化技术?

2022-03-02
阅读 3 分钟
1.7k
在 Java 语言中,提高程序的执行效率有两种实现方法,一个是使用线程、另一个是使用线程池。而在生产环境下,我们通常会采用后者。为什么会这样呢?今天我们就来聊聊线程池的优点,以及池化技术及其应用。
封面图

面试突击 26:如何正确停止线程?

2022-03-01
阅读 3 分钟
1.4k
在 Java 中停止线程的实现方法有以下 3 种:自定义中断标识符,停止线程。使用线程中断方法 interrupt 停止线程。使用 stop 停止线程。其中 stop 方法为 @Deprecated 修饰的过期方法,也就是不推荐使用的过期方法,因为 stop 方法会直接停止线程,这样就没有给线程足够的时间来处理停止前的保存工作,就会造成数据不完整...
封面图

Spring Cloud Alibaba Nacos 的 2 种健康检查机制!

2022-02-28
阅读 3 分钟
1.7k
Spring Cloud Alibaba Nacos 作为注册中心不止提供了服务注册和服务发现功能,它还提供了服务可用性监测的机制。有了此机制之后,Nacos 才能感知服务的健康状态,从而为服务调用者提供健康的服务实例,最终保证了业务系统能够正常的执行。
封面图

面试突击25:sleep和wait有什么区别

2022-02-23
阅读 4 分钟
1.6k
sleep 方法和 wait 方法都是用来将线程进入休眠状态的,并且 sleep 和 wait 方法都可以响应 interrupt 中断,也就是线程在休眠的过程中,如果收到中断信号,都可以进行响应,并抛出 InterruptedException 异常。那 sleep 和 wait 的区别都有哪些呢?接下来,我们一起来看。
封面图

面试突击24:为什么wait和notify必须放在synchronized中?

2022-02-22
阅读 4 分钟
1.5k
在多线程编程中,wait 方法是让当前线程进入休眠状态,直到另一个线程调用了 notify 或 notifyAll 方法之后,才能继续恢复执行。而在 Java 中,wait 和 notify/notifyAll 有着一套自己的使用格式要求,也就是在使用 wait 和 notify(notifyAll 的使用和 notify 类似,所以下文就只用 notify 用来指代二者)必须配合 sync...
封面图

多图|一文详解 Nacos 参数!

2022-02-21
阅读 4 分钟
1.8k
Nacos 中的参数有很多,如:命名空间、分组名、服务名、保护阈值、服务路由类型、临时实例等,那这些参数都是什么意思?又该如何设置?接下来我们一起来盘它。
封面图

面试突击 23:说一下线程生命周期,以及转换过程?

2022-02-18
阅读 6 分钟
1.3k
线程的生命周期指的是线程从创建到销毁的整个过程,通常情况下线程的生命周期有以下 5 种:初始状态可运行状态运行状态休眠状态终止状态它们的状态转换如下图所示:Java 线程生命周期Java 线程的生命周期和上面说的生命周期是不同的,它有以下 6 种状态:NEW(初始化状态)RUNNABLE(可运行/运行状态)BLOCKED(阻塞状态...
封面图

Nacos中服务删除不了,怎么办?

2022-02-17
阅读 3 分钟
3.3k
前两天遇到了一个问题,Nacos 中的永久服务删除不了,折腾了一番,最后还是顺利解决了。以下是原因分析和解决方案,建议先收藏,以备不时之需。
封面图

为什么start方法不能重复调用?而run方法却可以?

2022-02-15
阅读 4 分钟
1.7k
初学线程时,总是将 run 方法和 start 方法搞混,虽然二者是完全不同的两个方法,但刚开始使用时很难分清,原因就是因为初次使用时效果貌似是一样的,如下代码所示:

Spring Cloud Alibaba Nacos路由策略之保护阈值!

2022-02-14
阅读 3 分钟
1.8k
在 Nacos 的路由策略中有 3 个比较重要的内容:权重、保护阈值和就近访问。因为这 3 个内容都是彼此独立的,所以今天我们就单独拎出“保护阈值”来详细聊聊。

有哪些创建线程的方法?推荐使用哪种?

2022-02-10
阅读 3 分钟
1.4k
在 Java 中,线程的创建方法有 7 种,分为以下 3 大类:继承 Thread 类的方式,它有 2 种实现方法。实现 Runnable 接口的方式,它有 3 种实现方法。实现 Callable 接口的方式,它有 2 种实现方法。接下来我们一个一个来看。1.继承Thread类继承 Thread 类并重写 run 方法,是最早期创建线程的方法,它的实现方法有以下两...
封面图

Nacos服务注册与发现的2种实现方法!

2022-02-09
阅读 6 分钟
7k
其中注册中心解决了微服务调用中,服务提供者和服务调用者的解耦,让程序开发者可以无需过多的关注服务提供者和调用者的运行细节,只需要通过 Nacos 的注册中心就可以实现两者的互联互通,相当于实现了远程服务本地化,并且提供了健康检查等机制。
封面图

面试突击20:进程和线程有什么区别?

2022-02-08
阅读 2 分钟
1.7k
从用户的角度来看,进程是正在运行的程序实例,而线程是进程中真正执行任务的基本单位。也就是说一个运行的程序至少包含一个进程,一个进程至少包含一个线程,线程不能独立于进程而存在。
封面图

Spring Cloud Alibaba Nacos 服务注册与发现功能实现!

2022-02-07
阅读 8 分钟
1.7k
Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能。

面试突击19:为什么ConcurrentHashMap不允许插入null值?

2022-01-27
阅读 4 分钟
2k
在 Java 语言中,ConcurrentHashMap 和 Hashtable 这些线程安全的集合是不允许 key 或 value 插入 null 值的,而 HashMap 又允许 key 或 value 插入 null 值,这到底是为什么呢?
封面图

Spring Boot Admin 添加报警提醒和登录验证功能!

2022-01-26
阅读 5 分钟
1.9k
Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序,它提供了详细的健康信息、内存信息、JVM 系统和环境属性、垃圾回收信息、日志设置和查看、定时任务查看、Spring Boot 缓存查看和管理等功能。SBA 监控概览如下图所示:上一篇我们已经说了 SBA 的搭建和使用了,点击访问:[链接]然...
封面图

为什么ConcurrentHashMap是线程安全的?

2022-01-24
阅读 4 分钟
3k
ConcurrentHashMap 是 HashMap 的多线程版本,HashMap 在并发操作时会有各种问题,比如死循环问题、数据覆盖等问题。而这些问题,只要使用 ConcurrentHashMap 就可以完美解决了,那问题来了,ConcurrentHashMap 是如何保证线程安全的?它的底层又是如何实现的?接下来我们一起来看。
封面图

安卓平板体验Java开发,还能白嫖一年阿里无影云,真香!

2022-01-22
阅读 5 分钟
2.2k
阿里无影云早有耳闻,前两天看朋友发体验照片,可能是程序员天生爱折腾的特性又发挥作用了,自己也没能忍住,赶快下载体验了一把,没想到“很香”。我体验了浏览器端、Windows 客户端和安卓平板端,下面就来聊聊使用的过程和使用体验。内含一年免费无影云的白嫖方法,千万别错过哦~

面试突击17:HashMap除了死循环还有什么问题?

2022-01-20
阅读 4 分钟
1.6k
本篇的这个问题是一个开放性问题,HashMap 除了死循环之外,还有其他什么问题?总体来说 HashMap 的所有“问题”,都是因为使用(HashMap)不当才导致的,这些问题大致可以分为两类:
封面图

为什么HashMap会产生死循环?

2022-01-18
阅读 2 分钟
2.3k
HashMap 死循环是一个比较常见、比较经典的问题,在日常的面试中出现的频率比较高,所以接下来咱们通过图解的方式,带大家彻底理解死循环的原因。
封面图

更快的Maven构建工具mvnd和Gradle哪个更快?

2022-01-17
阅读 4 分钟
1.6k
Maven 作为经典的项目构建工具相信很多人已经用很久了,但如果体验过 Gradle,那感觉只有两个字“真香”。前段时间测评了更快的 Maven 构建工具 mvnd,感觉性能挺高的,貌似有了种“没必要再用 Gradle”的感觉了,而本文通过三者的性能对比,告诉你到底谁才是王者。
封面图