java
文章平均质量分 96
bd7xzz
简单程序员
展开
-
如何构造一个安全的单例?
为什么要问这个问题?我们知道,单例是一种很常用的设计模式,主要作用就是节省系统资源,让对象在服务器中只有一份。但是实际开发中可能有很多人压根没有写过单例这种模式,只是看过或者为了面试去写写demo熟悉一下。那为啥说是一种常用的模式?其实我们用的spring管理对象生命周期,用到默认的scope就是单例。这样的场景几乎每天都在用,所以我们不需要自己手写单例了。那么为了面试,进大厂,是不是就要刷刷文章学习学习呢?当我们刷完单例的整体结构时,会发现还是很简单的嘛,无非就是懒汉、饿汉。饿汉上来就创建,没什么难原创 2023-08-07 23:35:23 · 1210 阅读 · 0 评论 -
警惕jdk8 UDP和Thread.interrupt的Bug
线上业务在热点流量大的情况下(业务采用Java编程语言实现),单机偶发出现Hystrix熔断,接口无法提供服务。原创 2022-12-01 00:45:13 · 897 阅读 · 4 评论 -
Java是如何创建线程的(二)从glibc到kernel thread
上一节我们讨论了java线程是如何创建的,看了看从java代码层面到jvm层面的源码里都干了什么。整个流程还是比较复杂的,我将上一节总结的调用时序图贴在下面,方便你回忆起整体调用流程。这一节,我们再来详细看看glibc到linux kernel是如何创建线程的。这篇文章会涉及到一点汇编指令,因为我们要看看线程是如何进入内核态的。不用担心看不懂,我会写上注释,也不用死记硬背,只要知道线程进入内核态时是通过汇编指令进入的即可。原创 2023-02-11 20:26:30 · 715 阅读 · 0 评论 -
Java是如何创建线程的(一)从java到jvm
线程我们经常用,也会经常被面试或讨论到。我如果说Java如何创建线程的?你肯定回答下面三种:你一样会想,这么简单的问题有什么好问的,简直侮辱我的智商。但,请仔细想想,你真的知道上面3个问题,都包含在一个问题中,Java是如何跟操作系统交互创建线程,并被操作系统调度的?这3个问题,是我在2023年元旦放假休息的时候突然想到的,为什么会这么想?所以,我想看看背后的真相,看看线程的源代码是怎么实现的。在正式内容之前,我希望你抛弃之前对线程的认识,同时不要惧怕底层原理和代码,这篇文章也会很长。原创 2023-02-05 15:35:47 · 677 阅读 · 0 评论