Fork me on GitHub
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 35 下一页
摘要: 死锁(Dead Lock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。 1.死锁演示 死锁的形成分为两个方面,一个是使用内置锁 synchronized 形成的死锁,另一种是使用显式锁 Lock 实现的死锁,接下来我们分 阅读全文
posted @ 2021-09-06 09:03 磊哥|www.javacn.site 阅读(1143) 评论(1) 推荐(1)
摘要: 当我们遇到死锁之后,除了可以手动重启程序解决之外,还可以考虑是使用顺序锁和轮询锁,这部分的内容可以参考我的上一篇文章,这里就不再赘述了。然而,轮询锁在使用的过程中,如果使用不当会带来新的严重问题,所以本篇我们就来了解一下这些问题,以及相应的解决方案。 问题演示 当我们没有使用轮询锁之前,可能会出现这 阅读全文
posted @ 2021-08-31 09:00 磊哥|www.javacn.site 阅读(496) 评论(0) 推荐(3)
摘要: 死锁(Dead Lock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。 死锁示例代码如下: public class DeadLockExample { public static void main(String[] 阅读全文
posted @ 2021-08-28 09:55 磊哥|www.javacn.site 阅读(980) 评论(0) 推荐(0)
摘要: 死锁(Dead Lock)指的是两个或两个以上的运算单元(进程、线程或协程),都在等待对方停止执行,以取得系统资源,但是没有一方提前退出,就称为死锁。 死锁示例 接下来,我们先来演示一下 Java 中最简单的死锁,我们创建两个锁和两个线程,让线程 1 先拥有锁 A,然后在 1s 后尝试获取锁 B,同 阅读全文
posted @ 2021-08-24 08:47 磊哥|www.javacn.site 阅读(1536) 评论(2) 推荐(0)
摘要: 在 Java 中 synchronized 和 ReentrantLock 默认使用的都是非公平锁,而它们采用非公平锁的原因都是一致的,都是为了提升程序的性能。那为什么非公平锁就能提升性能呢?接下来我们一起来看。 非公平锁 非公平锁:每个线程获取锁的顺序是随机的,并不会遵循先来先得的规则,任何线程在 阅读全文
posted @ 2021-08-20 09:28 磊哥|www.javacn.site 阅读(364) 评论(0) 推荐(0)
摘要: JDK 1.5 之前 synchronized 的性能是比较低的,但在 JDK 1.5 中,官方推出一个重量级功能 Lock,一举改变了 Java 中锁的格局。JDK 1.5 之前当我们谈到锁时,只能使用内置锁 synchronized,但如今我们锁的实现又多了一种显式锁 Lock。 前面的文章我们 阅读全文
posted @ 2021-08-13 21:38 磊哥|www.javacn.site 阅读(1872) 评论(0) 推荐(1)
摘要: synchronized 在 JDK 1.5 时性能是比较低的,然而在后续的版本中经过各种优化迭代,它的性能也得到了前所未有的提升,上一篇中我们谈到了锁膨胀对 synchronized 性能的提升,然而它也只是“众多” synchronized 性能优化方案中的一种,那么我们本文就来盘点一下 syn 阅读全文
posted @ 2021-08-09 22:54 磊哥|www.javacn.site 阅读(1900) 评论(0) 推荐(1)
摘要: synchronized 在 JDK 1.5 之前性能是比较低的,在那时我们通常会选择使用 Lock 来替代 synchronized。然而这个情况在 JDK 1.6 时就发生了改变,JDK 1.6 中对 synchronized 进行了各种优化,性能也得到了大幅的提升,这也是目前版本中还能经常见到 阅读全文
posted @ 2021-08-03 09:15 磊哥|www.javacn.site 阅读(897) 评论(1) 推荐(2)
摘要: synchronized 是 Java 语言中处理并发问题的一种常用手段,它也被我们亲切的称之为“Java 内置锁”,由此可见其地位之高。然而 synchronized 却有着多种用法,当它修饰不同对象时,其意义也是不同的,下面我们一起来看。 ​ synchronized 用法 synchroniz 阅读全文
posted @ 2021-08-02 13:18 磊哥|www.javacn.site 阅读(1012) 评论(1) 推荐(3)
摘要: 在我们日常工作中,时间格式化是一件经常遇到的事儿,所以本文我们就来盘点一下 Spring Boot 中时间格式化的几种方法。 ​ 时间问题演示 为了方便演示,我写了一个简单 Spring Boot 项目,其中数据库中包含了一张 userinfo 表,它的组成结构和数据信息如下: 项目目录是这样的: 阅读全文
posted @ 2021-07-26 14:12 磊哥|www.javacn.site 阅读(4145) 评论(2) 推荐(4)
摘要: 上图的报错信息相信大部分程序员都遇到过,奇怪的是虽然代码报错,但丝毫不影响程序的正常执行,也就是虽然编译器 IDEA 报错,但程序却能正常的执行,那这其中的原因又是为何? ​ 报错原因分析 报错的原因首先是因为 IDEA 强大的报警机制,@Autowired 为 Spring 的注解,含义是将某类动 阅读全文
posted @ 2021-07-05 08:29 磊哥|www.javacn.site 阅读(1983) 评论(0) 推荐(2)
摘要: 在 Java 中,生成随机数的场景有很多,所以本文我们就来盘点一下 4 种生成随机数的方式,以及它们之间的区别和每种生成方式所对应的场景。 阅读全文
posted @ 2021-06-15 08:53 磊哥|www.javacn.site 阅读(12628) 评论(1) 推荐(1)
摘要: ThreadLocal 翻译成中文是线程本地变量的意思,也就是说它是线程中的私有变量,每个线程只能操作自己的私有变量,所以不会造成线程不安全的问题。 ​ 线程不安全是指,多个线程在同一时刻对同一个全局变量做写操作时(读操作不会涉及线程不安全问题),如果执行的结果和我们预期的结果不一致就称之为线程不安 阅读全文
posted @ 2021-05-26 09:05 磊哥|www.javacn.site 阅读(900) 评论(2) 推荐(0)
摘要: SimpleDateFormat线程不安全的5种解决方案! 阅读全文
posted @ 2021-05-17 08:32 磊哥|www.javacn.site 阅读(778) 评论(2) 推荐(2)
摘要: ThreadLocal 的两种经典使用场景,无可取代的位置。本文通过事例的方式给大家循循渐进的演示 ThreadLocal 的价值... 阅读全文
posted @ 2021-05-13 08:50 磊哥|www.javacn.site 阅读(1000) 评论(2) 推荐(1)
摘要: 在 Java 语言中线程分为两类:用户线程和守护线程,而二者之间的区别却鲜有人知,所以本文磊哥带你来看二者之间的区别,以及守护线程需要注意的一些事项。 1.默认用户线程 Java 语言中无论是线程还是线程池,默认都是用户线程,因此用户线程也被成为普通线程。 以线程为例,想要查看线程是否为守护线程只需 阅读全文
posted @ 2021-05-06 09:49 磊哥|www.javacn.site 阅读(613) 评论(0) 推荐(1)
摘要: [电影声明图片] 声明:本故事纯属虚构,如果雷同那就是真事了! 大家好,我是线程,我的英文名叫 Thread,别看我现在风光无限,好像人尽皆知的样子,然而我的身世却悲惨离奇。 我出身在一个小山村,那是一个与世隔绝的世外桃源,然而年纪轻轻的我,却展现出了与众不同的性格。比如:当身边的同龄人还在沉浸于玩 阅读全文
posted @ 2021-04-23 12:31 磊哥|www.javacn.site 阅读(569) 评论(1) 推荐(3)
摘要: 大家好,我是 Semaphore,我的中文名字叫“信号量”,我来自 JUC(java.util.concurrent)家族。 我们家族有很多优秀的成员,比如:CountDownLatch(等待其他线程都执行完再执行某线程),CyclicBarrier(循环阻塞一组线程,直到某个事件达成),当然我也不 阅读全文
posted @ 2021-04-21 09:33 磊哥|www.javacn.site 阅读(1077) 评论(0) 推荐(1)
摘要: 上一篇咱讲了 CountDownLatch 可以解决多个线程同步的问题,相比于 join 来说它的应用范围更广,不仅可以应用在线程上,还可以应用在线程池上。然而 CountDownLatch 却是一次性的计数器,以王者农药来说,咱们不可能一场团战就决定比赛的输赢,所以在某些场景下,咱们是需要重复使用 阅读全文
posted @ 2021-04-09 09:28 磊哥|www.javacn.site 阅读(1209) 评论(3) 推荐(3)
摘要: 一入王者深似海,从此对象是路人。 哈喽观众老爷们你们好,在下战神吕布字奉先,今天给大家来一部吕布的教学视频! 咳咳,不对。大家好,我是磊哥,今天给大家来一篇 CountDownLatch 的文章。 在开始之前,先问大家一个非常专业的技术性问题:打团战最怕_____? 一道非常简单的送分题,如果答不对 阅读全文
posted @ 2021-03-31 11:33 磊哥|www.javacn.site 阅读(255) 评论(0) 推荐(1)
摘要: Swagger 3.0 发布已经有一段时间了,它于 2020.7 月 发布,但目前市面上使用的主流版本还是 Swagger 2.X 版本和少量的 1.X 版本,然而作为一名合格的程序员怎么能不折腾新技术呢?所以本期就大家带来一篇最新版 Swagger 的内容,本文会带大家看最新版 Swagger 有 阅读全文
posted @ 2021-03-15 08:54 磊哥|www.javacn.site 阅读(7223) 评论(3) 推荐(4)
摘要: 数据库连接加密 阅读全文
posted @ 2021-03-02 08:56 磊哥|www.javacn.site 阅读(3470) 评论(1) 推荐(3)
摘要: 在 Java 语言中 try-catch-finally 看似简单,一副人畜无害的样子,但想要真正的“掌控”它,却并不是一件容易的事。别的不说,咱就拿 fianlly 来说吧,别看它的功能单一,但使用起来却“暗藏杀机”,若您不信,咱来看下面的这几个例子... 坑1:finally中使用return 阅读全文
posted @ 2021-01-28 16:01 磊哥|www.javacn.site 阅读(697) 评论(0) 推荐(1)
摘要: 上一篇我们讲了《Socket粘包问题的3种解决方案》,但没想到评论区竟然炸了。介于大家的热情讨论,以及不同的反馈意见,本文就来做一个扩展和延伸,试图找到问题的最优解,以及消息通讯的最优解决方案。 在正式开始之前,我们先对上篇评论中的几个典型问题做一个简单的回复,不感兴趣的朋友可直接划过。 问题一:T 阅读全文
posted @ 2021-01-13 09:01 磊哥|www.javacn.site 阅读(2693) 评论(6) 推荐(0)
摘要: 在 Java 语言中,传统的 Socket 编程分为两种实现方式,这两种实现方式也对应着两种不同的传输层协议:TCP 协议和 UDP 协议,但作为互联网中最常用的传输层协议 TCP,在使用时却会导致粘包和半包问题,于是为了彻底的解决此问题,便诞生了此篇文章。 什么是 TCP 协议? TCP 全称是 阅读全文
posted @ 2021-01-06 09:20 磊哥|www.javacn.site 阅读(22492) 评论(30) 推荐(7)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 35 下一页