FastDFS_v5.05安装配置,并且使用nginx 访问

FastDFS_v5.05安装配置1、软件下载:wgethttps://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gzwgethttp://jaist.dl.sourceforge.net/project/fastdfs/Fas
Linux Fastdfs 2020年08月09日 5次浏览

双重检查单例,为什么需要加volatile才可以?

先来看看懒汉模式,所谓懒汉式就是:一开始不初始化示例对象,当我们需要这个对象,调用getInstance然后再初始化对象classClassB{privatevolatilestaticClassBINSTANCE;publicstaticClassBgetInstance(){if(INSTANC
设计模式 Java 单例 2020年07月31日 12次浏览

ConcurrentModificationException产生和CopyOnWriteArrayList 迭代数据过期问题

Copy-On-Write简称COW,是一种用于程序设计的优化策略。JDK有两种Copy-On-Write容器,CopyOnWriteArrayList和CopyOnWriteArraySet。除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)。先回顾一下一个常
多线程 JUC 2020年07月24日 16次浏览

Java模拟CAS的实现

锁是一种阻塞的实现方式,而CAS是一个非阻塞算法的常见实现。CAS全称比较并交换。在Java的底层对这个的实现是利用了底层的机器指令。CAS主要包含了3个操作数—-需要读写的内存位置(V)、进行比较的预期原值(A)和拟写入的新值(B)。当且仅当V位置的值与预期的原值A相同时CAS才会通过原子的方式把
Java 算法 JUC 2020年07月21日 13次浏览

ReentrantReadWriteLock 读写锁的使用

基本讲解与使用①ReadWriteLock同Lock一样也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个是只读的锁,一个是写锁。读锁可以在没有写锁的时候被多个线程同时持有,写锁是独占的(排他的)。每次只能有一个写线程,但是可以有多个线程并发地读数据。所有读写锁的实现必须
Java 多线程 JUC 2020年07月16日 19次浏览

Lock获取锁的期间可以被中断

packagecom.coderman.lock.lock;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;/***Lock获取锁的期间可以被中断*@Authorzhangyuk
Java 多线程 JUC 2020年07月14日 17次浏览

指令重排序代码演示

概念指令重排序,顾名思义,就是对指令的执行顺序重新进行排序。编译器编译时重排序问题编译器在编译代码时,不会等待阻塞指令完成,而是先去编译执行其他指令,目的和处理器执行时乱序优化一样,但是效果你上更好,它可以完成更大范围、效果更好的指令乱序优化。处理器执行时乱序优化乱序优化,实际上也遵循着一定规则:只
2020年07月02日 24次浏览

多线程中的未捕获异常处理方案。

在多线程中,如果线程的执行代码中出现异常,应该怎么处理?是抛出异常还是在执行代码中直接trycatch了?我想一切的一切先从下面的这个demo说起。packagecom.coderman.uncatchexception;importjava.util.logging.Logger;/***处理子线
Java 2020年06月30日 16次浏览

面试题:使用java多线程来模拟死锁

方式一packagecom.coderman.juc.synchronizedtest;/***@Authorzhangyukang*@Date2020/6/1916:11*@Version1.0**/publicclassDeathLockTestimplementsRunnable{privat
Java 多线程 2020年06月19日 21次浏览

并行和并发的区别

并发并发(Concurrent),在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。并发不是真正意义上的“同时进行”,只是CPU把一个时间段划分成几个时间片段(时间区间),然后在这几个时间区间之间来回切换,由于CPU处理的速度非常快,只要时
Java 多线程 2020年06月14日 25次浏览