- 博客(37)
- 收藏
- 关注

原创 Java多线程相关知识--目录
文章目录Java多线程相关知识--目录1.全部文章目录2.设计模式目录Java多线程相关知识–目录1.全部文章目录Java多线程相关知识【1】–新建线程Java多线程相关知识【2】–Thread的构造方法Java多线程相关知识【3】–线程停止Java多线程相关知识【4】–线程同步Java多线程相关知识【8】–设计模式–Singleton方式Java多线程相关知识【9】–设计模式–...
2019-10-05 14:04:39
342
原创 Java多线程相关知识【39】--并发包用法--ReentrantLock
文章目录Java多线程相关知识【39】--并发包用法--ReentrantLock1.简介2.相关用法构造函数相关方法菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【39】–并发包用法–ReentrantLock1.简介在锁的基础上,提供了一些管理者的操作。2.相关用法构造函数ReentrantLock();//声明一个锁ReentrantLock(boolean f...
2019-10-23 12:23:33
248
原创 Java多线程相关知识【38】--并发包用法--Lock
文章目录Java多线程相关知识【38】--并发包用法--Lock1.简介2.相关接口菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【38】–并发包用法–Lock1.简介 lock为锁的一个接口,用其实现的锁都可使用包内元素。2.相关接口返回类型方法说明voidlock()进行元素的加锁voidlockInterruptibly()...
2019-10-23 11:22:01
226
原创 Java多线程相关知识【37】--并发包用法--Semaphore
菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【34】–并发包用法–Semaphore1.信号量2.相关方法1.构造函数Semaphore(int permits);//信号量初始化Semaphore(int permits, boolean fair);// 信号量初始化,并尽可能保证公平2.相关方法返回类型方法说明voidacquire(...
2019-10-23 10:26:08
270
原创 Java多线程相关知识【36】--并发包用法--Exchanger
菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【36】–并发包用法–Exchanger1.简介2.相关内容1.构造函数Exchanger();//创建一个交换器2.相关方法返回类型方法说明Vexchange(V x)交换的数据Vexchange(V x, long timeout, TimeUnit unit)交换数据的时间...
2019-10-18 16:26:51
178
原创 Java多线程相关知识【35】--并发包用法--CyclicBarrier
文章目录Java多线程相关知识【35】--并发包用法--CyclicBarrier1.简介2.相关用法1.构造函数2.相关方法菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【35】–并发包用法–CyclicBarrier1.简介 与countDownLatch不同,CyclicBarrier需等到所有进程完毕后,才会结束当前进程,即此方法为不求同年同月同日生,但求同年...
2019-10-16 10:22:03
227
原创 Java多线程相关知识【34】--并发包用法--CutdownLatch
文章目录Java多线程相关知识【34】--并发包用法--CutdownLatch1.类说明2.构造函数3.方法描述菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【34】–并发包用法–CutdownLatch1.类说明 相当于阀门,可使主线程等待多个子线程完成,起到同步作用。2.构造函数CountDownLatch(int count);//初始化一个阀门,需要设置...
2019-10-15 14:28:37
2497
1
原创 Java多线程相关知识【31】--concurrent工具包--Atomic包
菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【30】–concurrent工具包–Atomic包1. 解决的问题 解决volatile关键字只有有序性和可见性,没有原子性的问题,并且,他使用了轻量级的锁,能在加快运行的同时,保障数据的正确性。2. 常用的类AtomicInteger构造器AtomicInteger();//构造一个原子性的数据,默认值为0At...
2019-10-10 14:20:00
196
原创 Java多线程相关知识【30】--类加载器(ClassLoader)--线程上下文类加载器
文章目录Java多线程相关知识【30】--类加载器(ClassLoader)--线程上下文类加载器1.保证其他厂商遵循的定义协议2.产生的原因(以数据库驱动为例)3.官方的上下文机制(打破双亲访问机制)菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【30】–类加载器(ClassLoader)–线程上下文类加载器1.保证其他厂商遵循的定义协议 SPI(Service P...
2019-10-07 23:15:42
278
原创 Java多线程相关知识【29】--类加载器(ClassLoader)--命名空间,运行时包,类卸载
文章目录Java多线程相关知识【29】--类加载器(ClassLoader)--命名空间,运行时包,类卸载1.命名空间2.运行时包3.类的卸载及ClassLoader的卸载菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【29】–类加载器(ClassLoader)–命名空间,运行时包,类卸载1.命名空间 加载时的命名空间为 自己、自己父亲加载器至根加载器。当两个类...
2019-10-07 22:58:47
360
原创 Java多线程相关知识【28】--类加载器(ClassLoader)--打破双亲父委托机制
文章目录Java多线程相关知识【28】--类加载器(ClassLoader)--打破双亲父委托机制1.重写loadclass方法2. 当使用class要加载的类包括java.long时,Java不允许进行加载。菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【28】–类加载器(ClassLoader)–打破双亲父委托机制1.重写loadclass方法package com.co...
2019-10-07 22:39:08
323
原创 Java多线程相关知识【27】--类加载器(ClassLoader)--创建一个自定义加载器(父委托机制)
文章目录Java多线程相关知识【27】--类加载器(ClassLoader)--创建一个自定义加载器(父委托机制)手写一个类加载器测试我的类加载器类加载器说明:名词解释定义类加载器:实际使用加载类的加载器初始类加载器:实际使用加载器的全部父加载器父子类加载器的真实关系:包含关系父委托加载能提高系统的安全性,保证系统的安全性菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【27】–类...
2019-10-07 21:40:38
360
原创 Java多线程相关知识【26】--类加载器(ClassLoader)--JVM内置的类加载器
文章目录Java多线程相关知识【26】--类加载器(ClassLoader)--JVM内置的类加载器1.根加载器2.扩展加载器3.系统加载器(接触最多)菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【26】–类加载器(ClassLoader)–JVM内置的类加载器1.根加载器 java的核心加载器,可通过java的sun.boot.class.path属性获取内容,加...
2019-10-07 16:38:28
317
原创 Java多线程相关知识【25】--类加载器(ClassLoader)--类加载的过程
文章目录Java多线程相关知识【24】--类加载器(ClassLoader)--类加载的过程简介JVM内存简介方法区运行时常量池堆虚拟机栈本地方法栈程序计数器结束JVM的运行周期的方式1. 调用System.exit()进行退出2. 正常的结束3. 编写的程序发生异常(未处理Exception等)4. 虚拟机运行内部出现异常5. 虚拟机依附的操作系统异常类加载的阶段1.加载类加载的方式1. 从本地...
2019-10-07 16:07:23
645
原创 Java多线程相关知识【5】--锁
文章目录Java多线程相关知识【5】--锁1. 使用synchronized关键字1. 对变量进行加锁2. 对函数进行加锁3. 对类进行加锁2. 自实现一个LOCK锁接口锁实现Java多线程相关知识【5】–锁菜鸟的一个学习笔记,欢迎大神批评指正。1. 使用synchronized关键字1. 对变量进行加锁 private final static Object object = n...
2019-10-05 18:01:20
189
原创 Java多线程相关知识【4】--线程同步
文章目录Java多线程相关知识【4】--线程同步利用join()使多个线程同步Java多线程相关知识【4】–线程同步菜鸟的一个学习笔记,欢迎大神批评指正。利用join()使多个线程同步 Thread t1 = new Thread(() -> { try { Thread.sleep(RANDOM.nextInt(...
2019-10-05 13:50:10
200
原创 Java多线程相关知识【24】--设计模式--Active Objects设计模式(活动对象设计模式)
文章目录Java多线程相关知识【24】--设计模式--Active Objects设计模式(活动对象设计模式)1. 问题的引入2. 问题的解决3. 代码的实现1. 返回对象2. 返回对象实现3. 活动对象指令4. 活动对象指令实现5. 对要进行返回值的使用未来者模式6. 封装单次操作的指令7. 有返回值的单次指令操作8. 有返回值的单次指令操作模拟并发9. 无返回值的单次指令操作10. 无返回值的...
2019-10-05 11:56:24
691
原创 Java多线程相关知识【23】--设计模式--Worker-Thread设计模式
菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【23】–设计模式–Worker-Thread设计模式1. 问题的引入 使用生产者消费者模式时,若消费者处理的问题一致时,重复创建将使得线程操作过于繁杂。2. 问题的解决 将消费者封装至方法内,使用方法对线程统一进行管理。3. 代码的实现商品/** * 货物 */public class Produc...
2019-10-04 17:11:36
295
原创 Java多线程相关知识【22】--设计模式--Two Phase Termination设计模式(二次处理模式)
文章目录Java多线程相关知识【22】--设计模式--Two Phase Termination设计模式(二次处理模式)1. 问题的提出2. 问题的解决3. 解决的代码应用体测试执行菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【22】–设计模式–Two Phase Termination设计模式(二次处理模式)1. 问题的提出 在完成一个任务后,需要关闭一些资源等信...
2019-10-04 14:38:25
222
原创 Java多线程相关知识【21】--设计模式--Thread-Per-Message设计模式
文章目录Java多线程相关知识【21】--设计模式--Thread-Per-Message设计模式1.问题的提出2. 解决问题3.实现代码消息体消息处理消息连接菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【21】–设计模式–Thread-Per-Message设计模式1.问题的提出 当有人请求访问时,就应该有回答。2. 解决问题利用相应回答即可解决问题。3.实...
2019-10-04 14:28:04
235
原创 Java多线程相关知识【20】--设计模式--Count Down设计模式(阀门模式)
菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【20】–设计模式–Count Down设计模式(阀门模式)1. 问题的引入 当需要之前的多个线程都完成时,才能进行当前线程的接下来的任务,我们应该如何解决?2. 解决方案1. 使用join方式来保证之前的线程完成任务(过于繁琐,不推荐)2. 利用阀门来实现相关原理( 推荐)3. 实现代码自实现阀门体/** ...
2019-10-04 13:52:11
281
原创 Java多线程相关知识【19】--设计模式--Producer and Consumer设计模式(生产者消费者模式)
文章目录Java多线程相关知识【19】--设计模式--Producer and Consumer设计模式(生产者消费者模式)1. 问题的引入2. 解决的方案3. 代码的实现货物仓库生产者消费者测试菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【19】–设计模式–Producer and Consumer设计模式(生产者消费者模式)1. 问题的引入 有一个工厂,他负责生...
2019-10-04 12:56:47
1006
原创 Java多线程相关知识【18】--设计模式--巡检设计模式(Balking)
文章目录Java多线程相关知识【18】--设计模式--巡检设计模式(Balking)1. 问题的引入2. 解决方案3. 代码实现要保存的数据存储类巡视者顾客测试数据菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【18】–设计模式–巡检设计模式(Balking)1. 问题的引入 有几个线程,他在巡视一堆任务,当其中的一个线程想要去完成任务时,他发现,其他的线程已经将这个...
2019-10-03 22:15:13
2281
原创 Java多线程相关知识【17】--设计模式--上下文模式(Context)
文章目录Java多线程相关知识【17】--设计模式--上下文模式(Context)1. 问题的引入2. 解决方法1. 解决理论2. 实操代码上下文数据保存上文下文调度者测试上下文3. 优雅的解决方法1. 问题的发现2. 解决原理3. 实操代码上下文数据保存上下文数据保存单例上文下文调度者运行测试菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【17】–设计模式–上下文模式(Cont...
2019-10-03 18:26:22
2545
原创 Java多线程相关知识【16】--ThreadLocal模式
文章目录Java多线程相关知识【16】--ThreadLocal模式1.ThreadLocal介绍2.相关操作1.获取值2.设置值3.设置初始化值3.使用演示Java多线程相关知识【16】–ThreadLocal模式1.ThreadLocal介绍 有时,我们需要对多个线程进行多个数据的保存,而每次保存时,我们都需要建立大量的变量对其进行存储相应的值,这将使得程序的代码变得十分臃肿,不...
2019-10-03 12:28:30
198
原创 Java多线程相关知识【15】--设计模式--确保挂起模式(Guarded Suspension)
文章目录Java多线程相关知识【15】--设计模式--确保挂起模式(Guarded Suspension)1.问题的引入2.问题的解决3.实现的代码请求队列请求体连接端服务端使用方法菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【15】–设计模式–确保挂起模式(Guarded Suspension)1.问题的引入 一个线程正在做一个非常关键的任务,这时,有一个其他的线...
2019-10-02 15:18:09
301
原创 Java多线程相关知识【14】--设计模式--未来者模式(future)
文章目录Java多线程相关知识【14】--设计模式--未来者模式(future)1.问题的引入2.解决的方法3.代码的实现获取的结果获取的结果的实现要执行的任务任务的调度使用方法4.问题的剖析5.解决的方法6.增强的代码的实现获取的结果获取的结果的实现要执行的任务执行完要执行的任务后的任务任务的调度使用方法菜鸟的一个学习笔记,欢迎大神批评指正。Java多线程相关知识【14】–设计模式–未来者模...
2019-10-02 11:47:47
390
1
原创 Java多线程相关知识【13】--设计模式--不可变对象模式
文章目录Java多线程相关知识【11】--设计模式--不可变对象模式1.问题的引入2.引用的意义3.线程安全与可变对象和不可变对象的关系S1.不可变对象一定是线程安全的S2.可变对象不一定是线程不安全的4.代码编写原则1.类内的属性应全部为final修饰的类,确保数据无法被修改。2.当前的类应为final的。3.若要修改类不可变对象的值,只能将其重新赋值。4.为防止元素获取到引用类型数据后,进行引...
2019-09-30 20:35:08
241
原创 Java多线程相关知识【12】--设计模式--读写锁模式(读写模式)
文章目录Java多线程相关知识【11】--设计模式--读写锁模式(读写模式)1.问题的引入产生问题的代码2.解决方案解决的原理代码实现读写锁的实现3.进阶解决方案问题的引入解决的原理代码实现读写锁共享数据读线程写线程读写锁的缺陷缺陷的分析缺陷的解决解决的实现代码读写锁改进Java多线程相关知识【11】–设计模式–读写锁模式(读写模式)1.问题的引入 假设现在有一个景点,而这个景点也只...
2019-09-30 10:44:36
324
原创 Java多线程相关知识【11】--设计模式--观察者模式
文章目录Java多线程相关知识【11】--设计模式--观察者模式1.观察者模式的基本元素1.事件源(被监听者)2.观察者(监听者)2.观察者模式的实现1.观察者模式在单线程的实现事件源抽象观察者实际观察者一号观察者二号观察者三号观察者观察者和事件源的使用2.观察者模式在多线程的实现事件源抽象观察者实际观察者抽象观察者工人实际观察者工人工人1号工人2号工人3号观察者、事件源、观察者工人的使用Jav...
2019-09-29 09:26:01
293
原创 Java多线程相关知识【10】--解释volatile关键字
文章目录1.问题的引入2.问题发生的原因3.解决的方法3.1.解决方法的理论3.1.1总线加锁3.1.2.使用cpu高速缓存一致性协议(Intel 提出)3.2.Java中的多线程的三大原则3.2.1.原子性(atomic)3.2.2.有序性(order)Java默认提供的有序性(happens-before)3.3.3.可见性(visable)3.3.Java中的解决方法(使用volatile)...
2019-09-28 14:47:07
194
原创 Java多线程相关知识【9】--设计模式--WaitSet方式
文章目录1.WaitSet的具体含义2.Java中WaitSet的实现方法1.WaitSet的具体含义由于一个线程的生命周期可能存在运行,阻塞,就绪等状态,而使用WaitSet的Wait后,线程则可直接进入阻塞状态,而等待相应Set的信号唤醒。当线程被唤醒后,线程并非能直接进入运行状态,相应的,则可能进入就绪状态,等待系统调度进入相应的执行状态。在多个线程被唤醒时,唤醒的顺序并非先进先出的...
2019-09-28 11:39:40
491
1
原创 Java多线程相关知识【8】--设计模式--Singleton方式
文章目录一、四种单例模式(Singleton)的优缺点在多线程下1.饿汉式2.懒汉式3.懒汉式改进1.函数加锁2.双重判断二、三种优雅实现单例的方法1.双重判断的改进2.等待加载方式(不加锁)3.利用枚举的方式实现一、四种单例模式(Singleton)的优缺点在多线程下1.饿汉式优点:实现简单。缺点:使用前即主动加载,若很长时间未使用,易造成内存浪费。代码实现如下所示:/** * 饿...
2019-09-28 10:24:39
291
原创 Java多线程相关知识【3】--线程停止
文章目录Java多线程相关知识【3】--线程停止一、强制停止(不建议)二、优雅的停止(建议)1.标志位停止2.中断停止第一种停止方式第二种方式Java多线程相关知识【3】–线程停止菜鸟的一个学习笔记,大神请绕路。一、强制停止(不建议) 调用线程的~~~.stop()~~(此方法已被Java停用)方法,即可立即停止运行的线程,但这样,可能造成的结果是,有些资源没有释放,甚至容易出现问...
2019-09-26 14:37:02
209
原创 Java多线程相关知识【2】--Thread的构造方法及线程组的创建
文章目录Java多线程相关知识【2】--Thread的构造方法一、Thread()二、Thread(Runnable target)三、Thread(String name)四、Thread(Runnable target, String name)五、Thread(ThreadGroup group, Runnable target)六、Thread(ThreadGroup group, Run...
2019-09-20 10:54:53
397
原创 Java多线程相关知识【1】--新建线程
文章目录Java多线程相关知识【1】--新建线程一、extend (继承Thread类)二、implements (实现Runnable接口)Java多线程相关知识【1】–新建线程菜鸟的一个学习笔记,大神请绕路。一、extend (继承Thread类)新建一个thread,并重写其中的run方法public class ExtendThread extends Thread { ...
2019-09-20 10:54:04
255
原创 【Anaconda-Graphviz】决策树环境变量(以Anaconda-Graphviz为例)
文章导航前言相关软件下载地址相关软件安装一、 Anaconda软件的安装二、 Graphviz生成树软件的安装三、 相关环境变量的配置3. Graphviz环境变量配置相关操作步骤一、 软件使用方法二、 较为高级的相关配置三、 相关代码的执行操作前言Python的开发环境多种多样,例如Anaconda下的jupyter,记事本,jetbean下的pycharm软件,eclipse的pytho...
2019-03-27 23:05:15
1656
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人