- 博客(5)
- 收藏
- 关注
原创 Java线程的Interrupt方法与InterruptedException解析
线程阻塞状态与等待状态(当一个线程处于被阻塞或等待状态时,它暂时不活动,不允许任何代码且消耗最少的资源) 当一个线程试图获得一个内部的对象锁(而不是java.util.concurrent库中的锁),而该锁被其他线程持有,则该线程进入阻塞状态 当一个线程等待另一个线程通知调度器的一个条件时,它自己进入等待状态。在调用Object.wait方法或Thread.join方法,或者是等待java.util.concurrent库中的Lock或Condition时,就会出现这种情况。实..
2020-05-29 10:07:01 431
原创 Java的守护线程与非守护线程
Java分为两种线程:用户线程和守护线程所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。守护线程和用户线程的没啥本质的区别:唯一的不同之处就在于虚拟机的离开:如果用户线程已经全部退出运行了,只剩下守护线程存在了,虚拟机也就退出了。 因为没有了被守护者,守护线程也就没有工作
2020-05-29 09:31:48 188
原创 java中Unsafe类的“特殊”用法
最近在学习java.util.concurrent包的内容时,发现了一个java中很强大的工具类Unsafe,不仅提供了很强大的功能,如:操纵对象属性 操纵数组元素 线程挂起与恢复、CAS还发现了一些很“特殊”的用法。public native Object allocateInstance(Class<?> var1) throws InstantiationException;该方法可以通过Class对象构造一个对象实例。我们平时都是隐式(java反射)和显式地通过类
2020-05-27 19:19:43 308
原创 跳表(跳跃表)(SkipList)的java实现
跳表的详细数据结构解释见如下blog:跳跃表Skip List的原理和实现(Java)参照上述博文的实现如下:package com.foraixh.datastructure;import java.util.Random;/** * @author myvina@qq.com * @date 2020/5/19 19:28 * @usage 跳跃表的简单实现 */public class SkipList<V> { /** * 跳跃表的头
2020-05-19 21:26:22 612
原创 如何正确使用redis分布式锁
什么是分布式锁分布式锁可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。实现原理 互斥性 安全性 避免死锁 保证加锁和解锁操作是原子性操作 使用redis实现分布式锁java代码如下:import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.ValueOperations;impo
2020-05-13 23:09:04 244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人