自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zjt980452483的博客

神圣兽国游尾郡窝窝乡Java攻城狮

  • 博客(11)
  • 资源 (14)
  • 收藏
  • 关注

原创 Java并发编程——J.U.C组件FutureTask、ForkJoin、BlockingQueue

一、Runnable与Callable1.Runnable与Callable对比通常实现一个线程我们会使用继承Thread的方式或者实现Runnable接口,这两种方式有一个共同的缺陷就是在执行完任务之后无法获取执行结果。从Java1.5之后就提供了Callable与Future,这两个接口就可以实现获取任务执行结果。源码区别:Callable接口`:public interfa...

2019-10-30 15:03:40 394

原创 Java并发编程——AQS组件之ReentrantLock、ReentrantReadWriteLock、StempedLock以及Condition

一、可重入锁ReentrantLock1.ReentrantLock介绍 java中有两类锁,一类是Synchronized,而另一类就是J.U.C中提供的锁。ReentrantLock与Synchronized都是可重入锁,本质上都是lock与unlock的操作。2.ReentrantLock和Synchronized的对比可重入性:两者的锁都是可重入的,差别不大,有线程进入锁,计数器...

2019-10-28 12:34:48 215

原创 Java并发编程——AQS组件之CyclicBarrier

一、AQS组件CyclicBarrier1.CyclicBarrier介绍CyclicBarrier跟AQS其他组件,也是一个同步辅助类,它允许一组线程相互等待,直到到达某个公共的屏障点(循环屏障)CyclicBarrier可以完成多个线程之间相互等待,只有每个线程都准备就绪后才能继续往下执行后面的操作。每当有一个线程执行了await方法,计数器就会执行+1操作,待计数器达到预定的值,所...

2019-10-28 11:00:32 358

原创 Java并发编程——AQS组件之信号量(Semaphore)

一、AQS组件——信号量Semaphore1. 信号量(Semaphore)介绍:作用:用于保证同一时间并发访问线程的数目。信号量在操作系统中是很重要的概念,Java并发库里的Semaphore就可以很轻松的完成类似操作系统信号量的控制;Semaphore使用acquire方法和release方法来实现控制;在数据结构中我们学过链表,链表正常是可以保存无限个节点的,而Semaphore...

2019-10-27 23:50:42 803

原创 Java并发编程——AQS组件之CountDownLatch

一、AQS1. AQS介绍:  AQS(AbstractQueuedSynchronizer),是并发容器J.U.C(java.lang.concurrent)下locks包内的一个类。它实现了一个FIFO(FirstIn、FisrtOut先进先出)的队列。底层实现的数据结构是一个双向列表。2. AQS的实现思路  AQS内部维护了一个CLH队列来管理锁。线程会首先尝试获取锁,如果失败就将...

2019-10-27 20:51:40 278

原创 Java并发编程——同步容器

一、同步容器类1.Java中同步容器主要包括2类:1).Vector、Stack、HashTableVector实现了List接口,Vector实际上就是一个数组,和ArrayList类似,但是Vector中的方法都是synchronized方法,即进行了同步措施。Stack也是一个同步容器,它的方法也用synchronized进行了同步,它实际上是继承于Vector类。HashTab...

2019-10-26 20:20:25 134

原创 Java并发编程—— 线程不安全类与写法

一.概念如果一个类的对象同时被多个线程访问,如果不做特殊的同步或并发处理,很容易表现出线程不安全的现象,比如抛出异常、逻辑处理错误等,这种类我们就称为线程不安全的类;二. StringBuilder【线程不安全】和StringBuffer【线程安全】对比1.两者同时存在的意义:在只考虑运行效率而不担心线程安全情况的时候,优先选择StringBuilder,执行效率快;在考虑线程安全的...

2019-10-25 20:49:27 176

原创 Java并发编程——线程封闭

一、线程封闭1.概念**线程封闭:**当访问共享的可变数据时,通常需要同步。一种避免同步的方式就是不共享数据。如果仅在单线程内访问数据,就不需要同步,这种技术称为线程封闭(thread confinement)。2. 线程封闭的几种策略① Ad-hoc 线程封闭:维护线程的封闭性的职责完全由程序实现承担,是非常脆弱的,因此在程序中尽量少使用,一般使用更强的线程封闭技术,比如栈封闭或者T...

2019-10-25 17:06:42 211

原创 Java并发编程——不可变对象

一、不可变对象1. 不可变对象需要满足的条件:对象创建以后其状态就不能修改;对象所有的域都是final类型;对象是正确创建的(在创建期间,this引用没有逸出)2.具体来说可以通过以下策略来实现:将类声明成final,那么该类就无法被继承了;将所有的成员设置成private属性,使外界不能直接访问成员变量;设置成员变量不提供setter()方法,并将成员变量声明成final属...

2019-10-25 12:40:38 239 1

原创 Java并发编程——原子性锁

一、同步锁synchronized同步锁:依赖JVM来实现;优缺点:不可中断,适合竞争不激烈的场景,可读性号;Lock:依赖特殊的CPU指令、代码来实现,如ReentrantLock优缺点:可中断锁,多样化同步,适合竞争激烈的场景,能维持常态;二、synchronized 常见四种用法:修饰代码块:大括号括起的代码,作用于调用的对象;修饰方法【同步方法】:整个方法,作用于调用的...

2019-10-24 18:32:32 331

原创 Java并发编程——Atomic基本类型

Atomic原子类一. Atomic基本类型1.基本数据类型AtomicIntegerAtomicLongAtomicBoolean2.常用方法int get() // 获取当前值int getAndSet(int value) // 获取当前值并设置成指定值等价于普通变量的i = valueint getAndIncrement() // 自增 ,等价于普通变量的i++...

2019-10-24 18:04:44 373

深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理).txt

深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理),内容很详细,附带源代码,希望能帮助大家

2019-05-09

JavaEE SSM配套视频.txt

JavaEE SSM配套视频,内容很详细,附带源代码,希望能帮助大家

2019-05-09

python中文视频教程(全38集).txt

python中文视频教程(全38集),内容很详细,附带源代码,希望能帮助大家

2019-05-09

selenium视频学习.txt

selenium视频学习,内容很详细,附带源代码,希望能帮助大家

2019-05-09

动图git制作软件.txt

一款非常实用的动图git制作软件,内容很详细,希望能帮助大家

2019-05-09

思维导图视频教程.txt

思维导图视频教程,内容很详细,附带源代码,希望能帮助大家

2019-05-09

MySQL性能管理及架构设计.txt

MySQL性能管理及架构设计教程,内容很详细,附带源代码,希望能帮助大家

2019-05-09

Spring Cloud微服务实战.txt

Spring Cloud微服务实战,内容很详细,附带源代码,希望能帮助大家

2019-05-09

Java开发企业级权限管理系统.zip

Java开发企业级权限管理系统,内容很详细,附带源代码,希望能帮助大家

2019-05-09

【慕课网】前端小白入门系列课程完整版.txt

【慕课网精品课程】前端小白入门系列课程完整版,内容很详细,附带源代码,希望能帮助大家

2019-05-09

12306抢票Python代码,内含视频教程

本资源既有我的代码,也有我的学习视频。基础差可以根据教程手把手教你实现12306登录用户、余票查询、下单等功能。本代码基于Python2.7 实现12306抢票,我的代码与视频有些不同,希望有助于你的学习。有问题请私信,共同学习,共同进步!

2019-02-24

Mysql笔记资料

不仅有详细的mysql复习秘籍,还有本人博客中用到的Mysql资料

2018-10-04

mybatis 3.2.7核心包、依赖包、数据驱动包

此资源整理了mybatis3.2.7需要用到的核心包、依赖包、数据驱动包,并附带了用于测试的junit包。为了确保程序兼容以及稳定的情况,任何包都不可以缺少或替换。

2018-05-14

空空如也

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

TA关注的人

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