随笔分类 - Java
Java
摘要:线程池本质的概念就是一堆线程一起完成一件事情。 Executor ExecutorService ScheduledExecutorService Executors 线程池分类 创建线程池使用类:java.util.concurrent.Executors 创建无大小限制的线程池 public s
阅读全文
摘要:所谓的延迟队列最大的特征是它可以自动通过队列进行脱离,例如:现在有一些对象被临时保存着,但是有可能该集合对象是一个公共对象,那么里面的某些数据如果不在使用的时候就希望其可以在指定的时间达到后自动的消失。 DelayQueue是延迟队列主要的使用类,所谓的延迟队列其实就是=BlockingQueue+
阅读全文
摘要:Queue是一个队列,而队列的主要特征是FIFO先进先出,要实现生产者与消费者模型,也可以采用队列来进行中间的缓冲读取,好处是:生产者可以一直不停歇的生产数据。 BlockingQueue是Queue的子类,它实现有队列的基本特征: 在最初利用Queue实现生产者与消费者模型的时候发现一个问题:所有
阅读全文
摘要:如果要进行多个数据的保存,无疑首选类集(List、Set、Queue、Map),在类集的学习的时候也知道一个概念:许多集合的子类都具有同步与异步的差别,但是如果真的要在多线程之中去使用这些类,是否真的可以用呢? 范例:观察一下类集的问题: 不过很遗憾的是这个时候以上的代码出现了“java.util.
阅读全文
摘要:Exchanger交换空间 如果现在有两个线程,一个线程负责生产数据,另外一个线程负责消费数据,那么这个两个线程之间一定会存在一个公共的区域,那么这个区域的实现在JUC包之中称为Exchanger。 java.util.concurrent.Exchanger类表示一种两个线程可以进行互相交换对象的
阅读全文
摘要:锁的机制从整体的运行转态来讲核心就是:阻塞,解除阻塞,但是如果仅仅是这点功能,那么JUC并不能称为一个优秀的线程开发框架,然而是因为在juc里面提供了大量方便的同步工具辅助类。 Semaphore信号量 Semaphore通常用于限制可以访问某些资源(物理or逻辑)的线程数目。 例如,大家排队去银行
阅读全文
摘要:java.util.concurrent.locks.LockSupport这个是一个独立的类,这个类的主要功能是用来解决Thread里面提供的suspend()(挂起线程)、resume()(恢复运行)方法,这个两个方法的本质上会存在有死锁的嫌疑,所以从JDK1.4开始将其就已经列为不建议使用的方
阅读全文
摘要:在进行锁处理的时候还有一个接口:Condition,这个接口可以由用户来自己进行锁的对象创建。 Condition的作用是对锁进行更精确的控制。 Condition的await()方法相当于Object的wait()方法,Condition的signal()方法相当于Object的notify()方
阅读全文
摘要:读写锁简介 所谓的读写锁值得是两把锁,在进行数据写入的时候有一个把“写锁”,而在进行数据读取的时候有一把“读锁”。 写锁会实现线程安全同步处理操作,而读锁可以被多个对象读取获取。 读写锁:ReadWriteLock 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由JVM自己控制的。 R
阅读全文
摘要:ReentrantLock简介 ReentrantLock是一个可重复的互斥锁,又被称为独占锁,可重入的意思是:ReentrantLock锁可以被单个线程多次获取。但是在同一个时间点只能被一个线程锁持有 ReentrantLock使用一个FIFO(先进先出)的等待队里来管理获取该锁所有线程的。 Re
阅读全文
摘要:锁处理机制简介 juc的开发框架解决的核心问题是并发访问和数据安全操作问题,当进行并发访问的时候如果对于锁的控制不当,就会造成死锁这样的阻塞问题。 为了解决这样的缺陷,juc里面重新针对于锁的概念进行了设计。 JUC锁机制 JUC锁机制包括以下几个组成部分: 核心接口:Lock,ReadWriteL
阅读全文
摘要:静态代理设计模式 代理设计模式最本质的特质:一个真实业务主题只完成核心操作,而所有与之辅助的功能都由代理类来完成。 例如,在进行数据库更新的过程之中,事务处理必须起作用,所以此时就可以编写代理设计模式来完成。 范例:结合传统的代理设计模式以及以购物车CartDao为例来编写代理设计模式 以上Cart
阅读全文
摘要:JDK安装 1、查看环境是否有默认jdk,输入命令: 如果有默认jdk,可以使用 yum remove 删除 2、进入系统根目录,创建developer文件夹 3、进入到developer文件目录,再建一个目录setup 4、将 jdk-8u152-linux-x64 .rpm 安装包下载到setu
阅读全文