自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

原创 读写锁ReentrantReadWriteLock的使用

读写锁的使用读写锁是思想是将读锁和写锁分离,实现所谓线程之间读读共享,写写互斥这样的一个条件,即作用在资源访问频繁,但是更新次数较少的情况下。JAVA中提供ReentrantReadWriteLock即为读写锁,ReentrantReadWriteLock中提供ReadLock(读锁,共享锁),WirteLock(写锁,排他锁)。以下为ReentrantReadWriteLock使用案例package Lock;import java.util.HashMap;import java.ut

2021-03-22 17:33:23 194 1

翻译 自旋锁理论知识与代码验证

自旋锁、重入锁、公平非公平锁验证自旋锁相对互斥锁,自旋锁是一种轻量级的锁,通过循环判断当前锁是否被其他线程获取,直到该线程获取到锁,才退出循环。自旋锁的优点是减少了线程上下文切换的消耗, 缺点是如果获取锁的线程一直处于活跃状态,则会占用大量的CPU资源消耗。如JAVA中Atomic原子类就是用自旋锁的思想,以轻量级锁的方式实现原子性。 public final int getAndAddInt(Object var1, long var2, int var4) { int

2021-03-22 11:45:19 95

原创 Spring高频面试题

1.什么是Spring框架?Spring框架有哪些主要模块?​ 我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块是:核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。Spring模块图:2…使用Spring框架能带来哪些好处?低侵入式设计,代码污染极低Spr...

2019-08-17 09:41:49 315

原创 单例模式之静态内部类和双重校验的实现方式

单例模式之静态内部类和双重校验的实现方式单例模式有实现方式有懒汉式和饿汉式两种,而懒汉式又面临线程安全问题。在这里学习一下单例模式的两种经典的实现方式:InnerClass和DubbleCheck静态内部类实现单例模式:静态内部类不会随着外部类的加载而加载 ,只有静态内部类的静态成员被调用时才会进行加载 , 这样既保证的惰性初始化,又由JVM保证了多线程并发访问的正确性。public c...

2019-07-10 16:42:16 435

原创 用wait和notify通信实现一个类似于BlockingQueue的阻塞队列

阻塞对队列:1.当线程需要去队列取值时,如果此时队列为空,则该线程会阻塞等待,直到有别的线程往该队列中加入值。2.如果一个线程要往队列中加入值的时候,而此时队列已经满了,则该线程会一直等待下去,直到有一个线程把该队列的值取出来为止。实现代码:public class MyQueueTest { /** 底层LinkedList去存储 */ private final ...

2019-07-02 13:02:27 114

原创 线程通信

Object类提供了一套等待/通知的API,它是由以下3个方法组成。wiat():导致当前线程一直处于等待状态,直到另外的线程盗用这个线程的notify()或者 notifyAll()方法,或者等其他的线程中断当前等待的线程。notify():唤醒正在等待改对象监视器的单条线程。如果有几个线程在该对象锁上,则其中的某一条会被挑选出来唤醒,这种选择是随意的。notifyAll():...

2019-07-01 20:49:44 85

原创 竞态条件、数据竞争、缓存变量

java线程与并发编程实践阅读笔记线程相关的三个问题竞态条件:当两个线程竞争同一资源,如果对资源的访问顺序敏感,就称存在竞态条件,导致竞态条件发生的代码区称作临界区。两个经典例子:/** chaeck-then-act : 以下代码分为两步(假设a,b为全局变量): a. “检查” 是 if(a == 10.0) b. “动作” 则是 b = a / 2.0 竞态条件发生:...

2019-07-01 20:47:55 504 1

swing实现的猫版聊天室

使用swing实现的一个小型的聊天室,可以双击发送文件,用于学习使用

2017-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除