SF
Java中文社群
Java中文社群
注册登录
关注博客
注册登录
主页
关于
RSS
轮询锁在使用时遇到的问题与解决方案!
Java中文社群
2021-08-31
阅读 16 分钟
1.4k
当我们遇到死锁之后,除了可以手动重启程序解决之外,还可以考虑是使用顺序锁和轮询锁,这部分的内容可以参考我的上一篇文章,这里就不再赘述了。然而,轮询锁在使用的过程中,如果使用不当会带来新的严重问题,所以本篇我们就来了解一下这些问题,以及相应的解决方案。
死锁终结者:顺序锁和轮询锁!
Java中文社群
2021-08-28
阅读 7 分钟
1.5k
死锁(Dead Lock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。死锁示例代码如下:
死锁的 4 种排查工具 !
Java中文社群
2021-08-24
阅读 5 分钟
1.6k
死锁(Dead Lock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。
图解:为什么非公平锁的性能更高?
Java中文社群
2021-08-20
阅读 3 分钟
2.4k
在 Java 中 synchronized 和 ReentrantLock 默认使用的都是非公平锁,而它们采用非公平锁的原因都是一致的,都是为了提升程序的性能。那为什么非公平锁就能提升性能呢?接下来我们一起来看。
ReentrantLock 中的 4 个坑!
Java中文社群
2021-08-13
阅读 7 分钟
2.9k
JDK 1.5 之前 synchronized 的性能是比较低的,但在 JDK 1.5 中,官方推出一个重量级功能 Lock,一举改变了 Java 中锁的格局。JDK 1.5 之前当我们谈到锁时,只能使用内置锁 synchronized,但如今我们锁的实现又多了一种显式锁 Lock。
synchronized 中的 4 个优化,你知道几个?
Java中文社群
2021-08-09
阅读 3 分钟
4.8k
synchronized 在 JDK 1.5 时性能是比较低的,然而在后续的版本中经过各种优化迭代,它的性能也得到了前所未有的提升,上一篇中我们谈到了锁膨胀对 synchronized 性能的提升,然而它也只是“众多” synchronized 性能优化方案中的一种,那么我们本文就来盘点一下 synchronized 的核心优化方案。
synchronized 优化手段之锁膨胀机制!
Java中文社群
2021-08-03
阅读 4 分钟
1.8k
synchronized 在 JDK 1.5 之前性能是比较低的,在那时我们通常会选择使用 Lock 来替代 synchronized。然而这个情况在 JDK 1.6 时就发生了改变,JDK 1.6 中对 synchronized 进行了各种优化,性能也得到了大幅的提升,这也是目前版本中还能经常见到 synchronized 身影的重要原因之一。当然除了性能之外,synchronized 的使...
synchronized 加锁 this 和 class 的区别!
Java中文社群
2021-08-02
阅读 6 分钟
5k
synchronized 是 Java 语言中处理并发问题的一种常用手段,它也被我们亲切的称之为“Java 内置锁”,由此可见其地位之高。然而 synchronized 却有着多种用法,当它修饰不同对象时,其意义也是不同的,下面我们一起来看。
SpringBoot中时间格式化的5种方法!
Java中文社群
2021-07-26
阅读 8 分钟
1.7k
为了方便演示,我写了一个简单 Spring Boot 项目,其中数据库中包含了一张 userinfo 表,它的组成结构和数据信息如下:项目目录是这样的:UserController 实现代码如下:
@Autowired报错原因分析和4种解决方案!
Java中文社群
2021-07-05
阅读 3 分钟
5.9k
上图的报错信息相信大部分程序员都遇到过,奇怪的是虽然代码报错,但丝毫不影响程序的正常执行,也就是虽然编译器 IDEA 报错,但程序却能正常的执行,那这其中的原因又是为何?
中年程序员转行第1年的感悟|2021 年中总结
Java中文社群
2021-06-18
阅读 4 分钟
2.1k
2009 年初来乍到,先做了几年的 C# 开发,之后又去了一家 500 强的民营企业做了几年的技术经理,使用的技术也从 C# 开始扩展到了其他语言。
Java中生成随机数的4种方式!
Java中文社群
2021-06-15
阅读 8 分钟
3.7k
Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数。Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数。在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。
ThreadLocal内存溢出代码演示和原因分析!
Java中文社群
2021-05-26
阅读 7 分钟
2.2k
ThreadLocal 翻译成中文是线程本地变量的意思,也就是说它是线程中的私有变量,每个线程只能操作自己的私有变量,所以不会造成线程不安全的问题。
SimpleDateFormat线程不安全的5种解决方案!
Java中文社群
2021-05-17
阅读 10 分钟
10.1k
SimpleDateFormat 就是一个典型的线程不安全事例,接下来我们动手来实现一下。首先我们先创建 10 个线程来格式化时间,时间格式化每次传递的待格式化时间都是不同的,所以程序如果正确执行将会打印 10 个不同的值,接下来我们来看具体的代码实现:
ThreadLocal不好用?那是你没用对!
Java中文社群
2021-05-13
阅读 19 分钟
2.3k
确实如此,ThreadLocal 原本设计是为了解决并发时,线程共享变量的问题,但由于过度设计,如弱引用和哈希碰撞,从而导致它的理解难度大和使用成本高等问题。当然,如果稍有不慎还是导致脏数据、内存溢出、共享变量更新等问题,但即便如此,ThreadLocal 依旧有适合自己的使用场景,以及无可取代的价值,比如本文要介绍了...
额!Java中用户线程和守护线程区别这么大?
Java中文社群
2021-05-06
阅读 9 分钟
4.5k
在 Java 语言中线程分为两类:用户线程和守护线程,而二者之间的区别却鲜有人知,所以本文磊哥带你来看二者之间的区别,以及守护线程需要注意的一些事项。
Semaphore自白:限流器用我就对了!
Java中文社群
2021-04-21
阅读 5 分钟
1.6k
大家好,我是 Semaphore,我的中文名字叫“信号量”,我来自 JUC(java.util.concurrent)家族。我们家族有很多优秀的成员,比如:CountDownLatch(等待其他线程都执行完再执行某线程),CyclicBarrier(循环阻塞一组线程,直到某个事件达成),当然我也不比他们弱哦 罒ω罒。以下是我的个人简历,希望各位读者老爷们给个好...
CyclicBarrier:人齐了,司机就可以发车了!
Java中文社群
2021-04-09
阅读 5 分钟
2.7k
上一篇咱讲了 CountDownLatch 可以解决多个线程同步的问题,相比于 join 来说它的应用范围更广,不仅可以应用在线程上,还可以应用在线程池上。然而 CountDownLatch 却是一次性的计数器,以王者农药来说,咱们不可能一场团战就决定比赛的输赢,所以在某些场景下,咱们是需要重复使用某个等待功能的,这就是我们今天要介...
CountDownLatch:别浪,等人齐再团!
Java中文社群
2021-03-31
阅读 4 分钟
1.9k
一入王者深似海,从此对象是路人。哈喽观众老爷们你们好,在下战神吕布字奉先,今天给大家来一部吕布的教学视频!咳咳,不对。大家好,我是磊哥,今天给大家来一篇 CountDownLatch 的文章。在开始之前,先问大家一个非常专业的技术性问题:打团战最怕_____?一道非常简单的送分题,如果答不对,那磊哥就要批评你了,哈哈...
Swagger增强神器:Knife4j!5大增强功能预览
Java中文社群
2021-03-22
阅读 3 分钟
6.9k
Swagger 是开发中最常用的框架之一了,但 Swagger 本身又有很多不完善的地方,比如,在众多的接口中查询某一个接口,又或者是把所有的接口导出成 Word 格式等,都无法在 Swagger 中实现。
最新版Swagger 3升级指南和新功能体验!
Java中文社群
2021-03-15
阅读 5 分钟
18.8k
Swagger 3.0 发布已经有一段时间了,它于 2020.7 月 发布,但目前市面上使用的主流版本还是 Swagger 2.X 版本和少量的 1.X 版本,然而作为一名合格的程序员怎么能不折腾新技术呢?所以本期就大家带来一篇最新版 Swagger 的内容,本文会带大家看最新版 Swagger 有哪些改变?又是如何将老版本 Swagger 升级到新版的?
阿里巴巴Druid,轻松实现MySQL数据库连接加密!
Java中文社群
2021-03-02
阅读 6 分钟
3.7k
现在的开发习惯,无论是公司的项目还是个人的项目,都会选择将源码上传到 Git 服务器(GitHub、Gitee 或是自建服务器),但只要将源码提交到公网服务器就会存在源码泄漏的风险,而数据库配置信息作为源码的一部分,一旦出现源码泄漏,那么数据库中的所有数据都会公之于众,其产生的不良后果无法预期(比如某某酒店的信息...
try-catch-finally中的4个大坑,不小心就栽进去了!
Java中文社群
2021-01-28
阅读 8 分钟
4.3k
在 Java 语言中 try-catch-finally 看似简单,一副人畜无害的样子,但想要真正的“掌控”它,却并不是一件容易的事。别的不说,咱就拿 fianlly 来说吧,别看它的功能单一,但使用起来却“暗藏杀机”,若您不信,咱来看下面的这几个例子...
大龄程序员10年编程生涯的转型之旅,2020年新的开始
Java中文社群
2021-01-13
阅读 2 分钟
2k
冬日里的阳光透过床边的窗户照进屋内,此刻我正在为一个突如其来的 BUG 忙得焦头烂额,指尖轻轻的在键盘上敲打着,阳光透过窗户照在电脑的屏幕上略微有些反光,于是我放下手中的工作,迎着阳光照进来的方向向窗外望去,碧空如洗、云光粼粼,美的一塌糊涂。
Socket粘包问题终极解决方案—Netty版(2W字)!
Java中文社群
2021-01-13
阅读 27 分钟
2.9k
上一篇我们讲了《Socket粘包问题的3种解决方案》,但没想到评论区竟然炸了。介于大家的热情讨论,以及不同的反馈意见,本文就来做一个扩展和延伸,试图找到问题的最优解,以及消息通讯的最优解决方案。
Socket粘包问题的3种解决方案,最后一种最完美!
Java中文社群
2021-01-06
阅读 8 分钟
3.9k
在 Java 语言中,传统的 Socket 编程分为两种实现方式,这两种实现方式也对应着两种不同的传输层协议:TCP 协议和 UDP 协议,但作为互联网中最常用的传输层协议 TCP,在使用时却会导致粘包和半包问题,于是为了彻底的解决此问题,便诞生了此篇文章。
MySQL为Null会导致5个问题,个个致命!
Java中文社群
2020-12-31
阅读 5 分钟
5.6k
在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示:“兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。
文件写入的6种方法,这种方法性能最好
Java中文社群
2020-12-22
阅读 10 分钟
13.5k
在 Java 中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入时我们就可以选择各种各样的类来实现。我们本文就来盘点一下这些方法,顺便测试一下它们性能,以便为我们选出最优的写入方法。
线程池的7种创建方式,强烈推荐你用它...
Java中文社群
2020-12-17
阅读 11 分钟
2k
但随着时间的推移,集成电路上可容纳的晶体管数量已趋向饱和,摩尔定律也渐渐失效,因此多核 CPU 逐渐变为主流,与之相对应的多线程编程也开始变得普及和流行起来,这当然也是很久之前的事了,对于现在而言多线程编程已经成为程序员必备的职业技能了,那接下来我们就来盘一盘“线程池”这个多线程编程中最重要的话题。
求求你,别再用wait和notify了!
Java中文社群
2020-12-15
阅读 10 分钟
7k
Condition 是 JDK 1.5 中提供的用来替代 wait 和 notify 的线程通讯方法,那么一定会有人问:为什么不能用 wait 和 notify 了? 哥们我用的好好的。老弟别着急,听我给你细说...
上一页
1
…
More
10
11
12
(current)
13
14
…
More
下一页
上一页
12
(current)
下一页