自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 CAS原子操作

原子操作所谓原子操作是指不会被线程调度机制打断的操作,当某次操作一旦开始,就一直运行到结束,中间不会有任何中断。举个例子:A想要从自己的帐户中转1000块钱到B的帐户里。那个从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作:从A的帐户中减去1000块钱。如果A的帐户原来有3000块钱,现在就变成2000块钱了。在B的帐户里加1000块钱。如果B的帐户如果原来有2000块钱,现在则变成3000块钱了。如果在A的帐户已经减去了1000块钱的时候,忽然发生了意外,比如

2021-07-02 17:04:36 407

原创 常用的并发工具类

在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier、Semaphore和ExchangeCountDownLatchCountDownLatch是一个同步计数器,初始化的时候 传入需要计数的线程等待数,可以是需要等待执行完成的线程数,或者大于。作用:用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。是一组线程等待其他的线程完成工作以后在执行,相当于加强版join,其中:await():阻塞当

2021-07-02 17:03:05 220

原创 Ubuntu16.04系统GPU深度学习环境搭建

安装Ubuntu16.04.5系统安装过程就不详述了。安装NVIDIA1080Ti显卡驱动ll /etc/modprobe.d/blacklist.confsudo chmod 666 /etc/modprobe.d/blacklist.confsudo vi /etc/modprobe.d/blacklist.conf在最后一行加上:blacklist vga16fbblacklist nouveaublacklist rivafbblacklist rivatvblacklist

2021-07-02 17:01:34 249

原创 ForkJoin详解

Fork/Join是一个分而治之的任务框架,如一个任务需要多线程执行,分割成很多块计算的时候,可以采用这种方法。动态规范:和分而治之不同的是,每个小任务之间互相联系。工作密取:分而治之分割了每个任务之后,某个线程提前完成了任务,就会去其他线程偷取任务来完成,加快执行效率。同时,第一个分配的线程是从队列中的头部拿任务,当完成任务的线程去其他队列拿任务的时候是从尾部拿任务,所以这样就避免了竞争。在Java的Fork/Join框架中,使用两个类完成上述操作:  1.ForkJoinTask:我们要使用F

2021-07-02 17:00:19 9546

原创 ThreadLocal总结

ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。ThreadLocal内部就是一个ThreadLocalMap。ThreadLocal是如何为每个线程创建变量的副本的:1,首先,在每个线程Thread内部有一个ThreadLocal.ThreadLocalMap类型的成员变量threadLocals,这个threadLocals就是用来存储实际的变量副本的

2021-07-02 16:59:22 80

原创 volatile关键字

内存模型的相关概念计算机在执行程序时,每条指令都是在CPU中执行的,在执行指令过程中,会涉及到数据的读取和写入。程序运行过程中的临时数据是存放在主存(物理内存)当中的,需要将主存中的数据读取到内存中,而CPU执行速度很快,这时就存在一个问题,从内存读取数据与向内存写入数据的过程跟CPU执行指令的执行速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。因此在CPU里面就有了高速缓存。也就是,当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速

2021-07-02 16:58:13 46

原创 单例设计模式深度剖析

单例设计模式单例模式(Singleton Pattern)是设计模式中比较常用的一种,主要思想是保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式三要点: (1)、单例类只能有一个实例 这是最基本的,真正做到整个系统中唯一并不容易,通常还要考虑反射破坏、序列化/反序列化、对象垃圾回收等问题。 (2)、单例类必须自己创建自己的唯一实例 通常给实例构造函数protected或private权限。 (3)、单例类必须给所有其他对象提供这一实例 通常定义静态方法g

2021-07-02 16:56:46 83

原创 PdfBox解析pdf乱码

PdfBox解析使用PdfBox解析pdf,出现了某些pdf无法解析的问题,折腾了几天终于解决,今天记录一下。找到问题将正常的pdf和不能解析的pdf对比,发现正常的pdf和非正常的pdf的样式不同,但是具体不知道两种文件各自的区别,于是使用pdf转化器,分别将两种pdf转化成word,正常的pdf转化出的pdf内容文字格式是SEACRC+Times-Roman,而不正常的文字格式是Calibri,初步判断是目前的PdfBox(使用的是2.0.4)版本不支持解析Calibri这种文字格式,所以解析内容

2021-07-02 16:54:56 2041

转载 剖析ConcurrentHashMap

1.7以前一个ConcurrentHashMap里包含一个Segment数组,每个Segment里包含一个HashEntry数组,我们称之为table,每个HashEntry是一个链表结构的元素,每个key和value最后会计算出一个hash值,hash值如果相同的key,value会封装成一个对象,然后放入到HashEntity的相同链表中,不同则放在其他链表中,其实总结就是,Segment数组就是一个加锁的数组,每个线程对应一个Segment,每个Segment中包含一个hashmap。注意:Con

2021-07-02 14:07:56 156

转载 java集合总结

Vector和ArrayList的区别? 1,Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能 ,因此,ArrayList的性能比Vector好。 2,当Vector或Ar...

2021-07-02 11:39:06 133

转载 一款很好用的分析SQL脚本数据流关系的工具SQLFlow

最近因做一个分析SQL语句中的数据和table/column关系的需求,因为SQL语法太过复杂分析过程会很艰难,所以搜寻这种分析SQL数据流的工具,发现了很好用的分析SQL脚本数据流关系的工具SQLFlow,下面介绍一下这款工具。 什么是SQLFlow SQLFlow是一款专门分...

2021-05-11 18:55:40 2276

空空如也

空空如也

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

TA关注的人

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